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

PHP MySQL 擴展函數完整參考手冊(mysql_* 系列):連接、查詢、結果集處理、錯誤與事務管理

     編輯:MySQL 資料庫相關知識

⚠️ 重要警示

mysql_* 系列函數自 PHP 5.5.0 棄用,PHP 7.0.0 完全移除。 新項目**必須使用 mysqli 或 PDO_MySQL**。本文僅供維護老項目參考。

函數分類速查表

分類代表函數
連接管理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_object, mysql_fetch_assoc, mysql_data_seek, mysql_num_rows, mysql_num_fields
結果集釋放mysql_free_result
字段元數據mysql_fetch_field, mysql_field_name, mysql_field_type, mysql_field_len, mysql_field_flags, mysql_field_table, mysql_field_seek
錯誤處理mysql_errno, mysql_error
事務/自增 IDmysql_insert_id, mysql_affected_rows
庫/表列表mysql_list_dbs, mysql_list_tables, mysql_list_fields, mysql_tablename
DDL 封裝mysql_create_db, mysql_drop_db
單值獲取mysql_result

核心函數詳解(高頻使用)

mysql_connect / mysql_pconnect

$link = mysql_connect('host:port', 'user', 'pass', true, MYSQL_CLIENT_SSL);
// 參數:主機:端口、用戶、密碼、new_link(強制新連接)、client_flags
// pconnect:持久連接,進程結束不關閉,慎用(連接泄漏風險)

mysql_query

$res = mysql_query('SELECT * FROM t', $link);
// 返回:資源句柄(SELECT/SHOW/DESC) 或 true/false(INSERT/UPDATE/DELETE)
// false 表示 SQL 錯誤,需配合 mysql_errno/error 排查

結果集遍歷三剑客

函數返回索引類型適用場景
mysql_fetch_row數組數字 0-based極簡、性能略優
mysql_fetch_assoc數組關聯鍵名語義清晰,推薦
mysql_fetch_array數組雙模式 (MYSQL_BOTH 默認)兼容舊碼,可指定 MYSQL_NUM/ASSOC
mysql_fetch_object對象屬性名面向對象風格
while ($row = mysql_fetch_assoc($res)) {
    echo $row['id'], $row['name'];
}
mysql_free_result($res); // 及時釋放

錯誤處理模式

mysql_query($sql) or die('Query failed: ' . mysql_error() . ' (Code: ' . mysql_errno() . ')');

事務相關(需 InnoDB)

mysql_query('SET AUTOCOMMIT=0');
mysql_query('BEGIN');
mysql_query('INSERT ...');
mysql_query('COMMIT'); // 或 ROLLBACK

注意: mysql_* 無原生事務函數,靠手動發送 SQL 實現。

遷移指引:mysqli / PDO 對照

mysql_*mysqli (面向對象)PDO
mysql_connectnew mysqli()new PDO()
mysql_query$mysqli->query()$pdo->query()
mysql_fetch_assoc$res->fetch_assoc()$stmt->fetch(PDO::FETCH_ASSOC)
mysql_prepare$mysqli->prepare()$pdo->prepare()
mysql_real_escape_string$mysqli->real_escape_string()參數綁定自動防注入
mysql_insert_id$mysqli->insert_id$pdo->lastInsertId()
mysql_affected_rows$mysqli->affected_rows$stmt->rowCount()

推薦資源

  • 官方文檔:mysqli / PDO
  • 圖形管理工具:phpMyAdmin(PHP 寫成,可二次開發學習)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved