获取数据库表的列名并在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();
?>
我看到两个大** **的问题在这里。 1)您正在使用已经从PHP中删除了很长一段时间的扩展。这是特别危险的,因为你说你只是在学习PHP。请参阅[PHP手册](http://php.net/manual/en/mysqlinfo.api.choosing.php)了解更多关于使用新API的详细信息。 2)列名是你的'$ row'数组的关键。因此'$ row ['foo']'是该结果行中的列'foo'的值。你的数据库模式是静态的,所以你应该总是知道你的列名是什么。 – Sherif
所以我必须首先使用Msqli。 – gigi
你可以使用[MySQLi](http://php.net/mysqli)或[PDO](http://php.net/pdo),但是无论你做什么**绝对不能使用[旧的mysql扩展](http://php.net/manual/en/ref.mysql.php),因为它已被弃用和删除很久以前。在我看来,PDO是一个更优雅的界面,但MySQLi可以为您提供MySQL API原生的完整供应商特定功能集,因为PDO是与供应商无关的界面。对于刚刚学习PHP的初学者,我会建议坚持使用PDO,因为您可能不需要MySQLi必须提供的任何高级功能。 – Sherif