請注意,如果您想取得表格的欄位數量,並且您正在使用「SHOW COLUMNS FROM $table」查詢,您將必須在結果上使用 mysql_num_rows() 而不是 mysql_num_fields()。仔細想想,這是合乎邏輯的,因為 SHOW COLUMNS 查詢返回的結果包含六個欄位(Field、Type、Null、Key、Default 和 Extra),並且每個找到的欄位都有一列。如果您計算欄位數,您將始終得到 6。如果您計算列數,您將得到找到的欄位數。
(PHP 4, PHP 5)
mysql_num_fields — 取得結果中的欄位數
此擴充自 PHP 5.5.0 起已被棄用,並在 PHP 7.0.0 中被移除。建議改用 MySQLi 或 PDO_MySQL 擴充。另請參閱 MySQL:選擇 API 指南。此函式的替代方案包括:
範例 #1 mysql_num_fields() 範例
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo '無法執行查詢:' . mysql_error();
exit;
}
/* 返回 2,因為 id,email 等於兩個欄位 */
echo mysql_num_fields($result);
?>
注意:
為了向後相容,可以使用以下已棄用的別名:mysql_numfields()
請注意,如果您想取得表格的欄位數量,並且您正在使用「SHOW COLUMNS FROM $table」查詢,您將必須在結果上使用 mysql_num_rows() 而不是 mysql_num_fields()。仔細想想,這是合乎邏輯的,因為 SHOW COLUMNS 查詢返回的結果包含六個欄位(Field、Type、Null、Key、Default 和 Extra),並且每個找到的欄位都有一列。如果您計算欄位數,您將始終得到 6。如果您計算列數,您將得到找到的欄位數。
以下是一種從表格中印出一列 <th> 標籤的方法
注意:我沒有測試過這個
$result = mysql_query("select * from table");
for ($i = 0; $i < mysql_num_fields($result); $i++) {
print "<th>".mysql_field_name($result, $i)."</th>\n";
}
如果有錯誤,請發表評論
如果您只想要表格中的欄位數,您可以執行以下操作
<?php
$db_id = mysql_connet();
$result = mysql_query("DESCRIBE [tableName]", $db_id);
$numFields = mysql_num_rows($result);
?>
因為「DESCRIBE」會針對表格中的每個欄位回傳一列(至少在 MySQL 中是如此),所以這樣做可以運作。