首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL PHP 擴展函數詳解(五):欄位中繼資料查詢函數群

     編輯:MySQL 資料庫相關知識

前言

在 PHP 中操作 MySQL 查詢結果時,經常需要取得欄位的中繼資料(如所屬資料表、資料類型、旗標、最大長度)。本文詳細說明 mysql_field_* 系列函數的用法與範例。

一、mysql_field_table():取得欄位所屬資料表名稱

string mysql_field_table(int result_id, int col_num)
  • col_num 範圍:0 到 mysql_num_fields()-1
  • 計算欄位(如 SELECT 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>";
}
?>

二、mysql_field_type():取得欄位資料類型名稱

string mysql_field_type(int result_id, int col_num)
  • 回傳類型名稱(如 int、varchar、date 等)
  • 詳細類型對照請參考「MySQL 列類型參考」

範例

printf("Type: %s<br>", mysql_field_type($result, $i));

三、mysql_field_flags():取得欄位旗標資訊

string mysql_field_flags(int result_id, int col_num)
  • 回傳空格分隔的旗標字串(如 not_null primary_key auto_increment)
  • 錯誤時回傳 false

範例

printf("Flags: %s<br>", mysql_field_flags($result, $i));

四、mysql_field_len():取得欄位最大長度

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 擴展。本文僅供維護舊專案參考。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved