獲取數據庫表的列名並在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