Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库中收集表的列名_Php_Mysql_Database - Fatal编程技术网

Php 从数据库中收集表的列名

Php 从数据库中收集表的列名,php,mysql,database,Php,Mysql,Database,获取数据库表的列名并在php页面中显示它们的最佳方法是什么?我只能收集并显示表格行 $connection = mysql_connect('localhost', 'root', ''); mysql_select_db('...'); $query = "SELECT * FROM ..."; $result = mysql_query($query); echo "<table class='table'>"; echo '<tr>'; for ($i = 0;

获取数据库表的列名并在php页面中显示它们的最佳方法是什么?我只能收集并显示表格行

$connection = mysql_connect('localhost', 'root', '');
mysql_select_db('...');
$query = "SELECT * FROM ...";

$result = mysql_query($query);

echo "<table class='table'>";
echo '<tr>';
for ($i = 0; $i < mysql_num_fields($result); $i++) { 
    echo "<th>".mysql_field_name($result, $i)."</th>"; 
}
echo '</tr>';
while($row = mysql_fetch_array($result)){  
echo "<tr class='info'><td>" . $row['name'] . "</td>
               <td>" . $row['mail'] . "</td>
               <td>" . $row['number'] . "</td>
               <td>" . $row['price'] . "</td>
               <td>" . $row['paymenttype'] . "</td>
               <td>" . $row['pcname'] . "</td>
               </tr>";  
}
echo "</table>"; 
mysql_close(); 
?> 
$connection=mysql\u connect('localhost','root','');
mysql_select_db(“…”);
$query=“选择*自…”;
$result=mysql\u query($query);
回声“;
回声';
对于($i=0;$i 

使用

SHOW COLUMNS FROM {table_name}

$result=mysql\u查询(“从表中选择*);
回声';
对于($i=0;$i
这里有两个主要问题。1) 您正在使用一个已经从PHP中删除了相当长一段时间的扩展。这尤其危险,因为你说你只是在学习PHP。有关使用较新API的更多详细信息,请参阅。2) 列名是
$row
数组的键。因此,
$row['foo']
是该结果行中列
foo
的值。您的数据库架构是静态的,因此您应该始终知道列名是什么。因此,我必须首先使用Msqli。您可以使用或,但无论您做什么,都绝对不能使用,因为它早就被弃用和删除了。在我看来,PDO是一个更优雅的接口,但MySQLi可以为您提供MySQL API固有的完整的特定于供应商的特性集,因为PDO是一个与供应商无关的接口。对于一个刚刚学习PHP的初学者,我建议暂时坚持使用PDO,因为你可能不需要MySQLi提供的任何高级功能。谢谢你,我将首先更改连接到db的方法,然后当它工作时,我将完成第二部分。更新了我的问题,类似的事情?请解释为什么这样做。这并不能回答这个问题。若要评论或要求作者澄清,请在他们的帖子下方留下评论。@MeeneshJain这到底是如何回答问题的,我的阅读方式OP知道如何动态阅读列名,这就是实现它的方法。@RohitGupta此查询将提供列名,因此您无需硬编码。这很有效,谢谢
$result = mysql_query("select * from table"); 

echo '<tr>';
for ($i = 0; $i < mysql_num_fields($result); $i++) { 
    echo "<th>".mysql_field_name($result, $i)."</th>"; 
}
echo '</tr>';