首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL PHP 函數庫完整參考:連線、查詢、結果集處理與錯誤診斷

     編輯:MySQL 綜合教學

PHP 操作 MySQL 核心函數速查手冊(mysql_* 系列)

雖然 PHP 7+ 已移除 mysql_* 擴展(建議改用 mysqli 或 PDO),但大量存量專案仍在使用。本文系統整理 40+ 核心函數分類、語法、回傳值與實務範例。

函數分類總覽

類別代表函數
連線管理mysql_connect、mysql_pconnect、mysql_close、mysql_select_db
查詢執行mysql_query、mysql_db_query、mysql_unbuffered_query
結果集遍歷mysql_fetch_array、mysql_fetch_row、mysql_fetch_assoc、mysql_fetch_object、mysql_fetch_field
結果集指標mysql_data_seek、mysql_field_seek、mysql_num_rows、mysql_num_fields
欄位中繼資料mysql_field_name、mysql_field_type、mysql_field_len、mysql_field_flags、mysql_field_table
資源釋放mysql_free_result
錯誤診斷mysql_errno、mysql_error
DDL 操作mysql_create_db、mysql_drop_db、mysql_list_dbs、mysql_list_tables、mysql_list_fields
其他mysql_affected_rows、mysql_insert_id、mysql_tablename、mysql_stat、mysql_thread_id

高頻函數詳細說明

mysql_connect

resource mysql_connect(string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]])
// 參數可省略:預設 localhost、PHP 進程擁有者、空密碼
// 成功回傳連線資源,失敗回傳 false

mysql_query

resource|bool mysql_query(string $query [, resource $link_identifier])
// SELECT/SHOW/EXPLAIN/DESCRIBE 回傳結果集資源
// INSERT/UPDATE/DELETE/DROP 回傳 true/false

mysql_fetch_array

array mysql_fetch_array(resource $result [, int $result_type])
// $result_type: MYSQL_ASSOC、MYSQL_NUM、MYSQL_BOTH(預設)
// 同時提供數字索引與關聯索引

mysql_affected_rows

int mysql_affected_rows([resource $link_identifier])
// 回傳前一條 INSERT/UPDATE/DELETE 影響的行數
// DELETE 無 WHERE 時回傳 0(MySQL 優化特性)
// SELECT 不適用,請用 mysql_num_rows()

錯誤診斷範例

<?php
mysql_connect("localhost", "user", "pass");
mysql_select_db("mydb");
$sql = "INSERT INTO t (c) VALUES ('test')";
if (!mysql_query($sql)) {
    die("Error " . mysql_errno() . ": " . mysql_error());
}
?>

完整應用範例

<?php
$dbh = mysql_connect('localhost:3306', 'user', 'pass');
mysql_select_db('admreqs', $dbh);
$query = "INSERT INTO requests (date, request, email, priority, status) 
          VALUES (NOW(), '$desc', '$email', '$priority', 'NEW')";
$res = mysql_query($query, $dbh);
$query = "SELECT MAX(id) FROM requests";
$res = mysql_query($query, $dbh);
$row = mysql_fetch_row($res);
echo "您的申請編號: " . $row[0];
mysql_close($dbh);
?>

遷移建議

  • 新專案請直接使用 mysqli(程序式/物件雙介面)或 PDO(資料庫抽象層)
  • 存量專案可透過 mysqlnd 驅動獲得效能提升
  • 逐模組重構:優先改寫高風險/高變動模組

掌握經典函數庫用法,兼顧存量維護與新架構演進。

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