在 PHP 中操作 MySQL 查詢結果時,經常需要取得欄位的中繼資料(如所屬資料表、資料類型、旗標、最大長度)。本文詳細說明 mysql_field_* 系列函數的用法與範例。
string mysql_field_table(int result_id, int col_num)
col_num 範圍:0 到 mysql_num_fields()-1SELECT 1+1)回傳空字串<?php
$link = mysql_pconnect("localhost", "user", "pass") or die("連線失敗");
mysql_select_db("stamp_db");
$result = mysql_query("SELECT * FROM president") or die("查詢失敗");
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo "Column $i: ";
printf("Name: %s<br>", mysql_field_name($result, $i));
printf("Table: %s<br>", mysql_field_table($result, $i));
echo "<br>";
}
?>
string mysql_field_type(int result_id, int col_num)
int、varchar、date 等)printf("Type: %s<br>", mysql_field_type($result, $i));
string mysql_field_flags(int result_id, int col_num)
not_null primary_key auto_increment)falseprintf("Flags: %s<br>", mysql_field_flags($result, $i));
int mysql_field_len(int result_id, int col_num)
printf("Len: %d<br>", mysql_field_len($result, $i));
<?php
$link = mysql_pconnect("localhost", "user", "pass") or die("連線失敗");
mysql_select_db("stamp_db");
$result = mysql_query("SELECT * FROM member") or die("查詢失敗");
echo "<table border=1><tr><th>Column</th><th>Name</th><th>Table</th><th>Type</th><th>Flags</th><th>MaxLen</th></tr>";
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo "<tr>";
echo "<td>$i</td>";
echo "<td>" . mysql_field_name($result, $i) . "</td>";
echo "<td>" . mysql_field_table($result, $i) . "</td>";
echo "<td>" . mysql_field_type($result, $i) . "</td>";
echo "<td>" . mysql_field_flags($result, $i) . "</td>";
echo "<td>" . mysql_field_len($result, $i) . "</td>";
echo "</tr>";
}
echo "</table>";
?>
mysql_* 函數自 PHP 5.5.0 起棄用,PHP 7.0.0 移除。 新專案請改用 mysqli_* 或 PDO_MySQL 擴展。本文僅供維護舊專案參考。