在 PHP 中操作 MySQL 時,經常需要獲取結果集的元數據信息,例如列名、表名、數據類型、標誌位和最大長度等。本文詳細介紹了五個常用的元數據獲取函數,並提供了完整的代碼示例。
語法: string mysql_field_table(int result_id, int col_num)
返回結果集中指定列所屬的表名。對於計算列(如表達式、函數結果),該值為空字符串。參數 col_num 的範圍為 0 到 mysql_num_fields() - 1。
<?php
$link = mysql_pconnect("localhost", "sunsoft", "suixiang") or die("Could not connect");
mysql_select_db("stamp_db");
$query = "SELECT * FROM president";
$result = mysql_query($query) or die("Query failed");
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo "Column $i:
";
printf("Name: %s
", mysql_field_name($result, $i));
printf("Table: %s
", mysql_field_table($result, $i));
echo "<br>";
}
?>
語法: string mysql_field_type(int result_id, int col_num)
返回結果集中指定列的類型名稱(如 int、varchar、date 等)。具體類型對照請參考 MySQL 列類型參考文檔。參數範圍同前。
<?php
$link = mysql_pconnect("localhost", "sunsoft", "suixiang") or die("Could not connect");
mysql_select_db("stamp_db");
$query = "SELECT * FROM president";
$result = mysql_query($query) or die("Query failed");
for ($i = 0; $i < mysql_num_fields($result); $i++) {
printf("Column %d:
", $i);
printf("Name: %s,
", mysql_field_name($result, $i));
printf("Type: %s
", mysql_field_type($result, $i));
}
?>
語法: string mysql_field_flags(int result_id, int col_num)
以字符串形式返回指定列的元數據標誌,各標誌以空格分隔。若出錯返回 false。常見標誌包括:not_null、primary_key、unique_key、multiple_key、blob、unsigned、zerofill、binary、enum、auto_increment、timestamp 等。
<?php
$link = mysql_pconnect("localhost", "sunsoft", "suixiang") or die("Could not connect");
mysql_select_db("stamp_db");
$query = "SELECT * FROM member";
$result = mysql_query($query) or die("Query failed");
for ($i = 0; $i < mysql_num_fields($result); $i++) {
printf("Column %d:
", $i);
printf("Name: %s,
", mysql_field_name($result, $i));
printf("Flags: %s
", mysql_field_flags($result, $i));
}
?>
語法: int mysql_field_len(int result_id, int field_offset)
返回結果集中指定列可能的最大長度(以字節為單位)。對於 VARCHAR、CHAR、TEXT 等類型特別有用。
<?php
$link = mysql_pconnect("localhost", "sunsoft", "suixiang") or die("Could not connect");
mysql_select_db("stamp_db");
$query = "SELECT * FROM member";
$result = mysql_query($query) or die("Query failed");
for ($i = 0; $i < mysql_num_fields($result); $i++) {
printf("Column %d:
", $i);
printf("Name: %s,
", mysql_field_name($result, $i));
printf("Max Length: %d
", mysql_field_len($result, $i));
echo "<br>";
}
?>
這四個函數構成了 MySQL 結果集元數據獲取的核心工具集,配合 mysql_num_fields() 可完整遍歷結果集的所有列信息。在開發數據庫管理工具、動態表單生成、數據導出等功能時非常實用。
本文來源:52教程網 | 原文鏈接