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

MySQL PHP 擴展函數完整參考手冊 (1-20)

     編輯:MySQL 資料庫相關知識

本文整理 MySQL PHP 擴展 (mysql_* 函數族) 核心 20 個函數的用法、參數與回傳值,供開發快速查閱。注意: 此擴展已於 PHP 5.5.0 棄用,PHP 7.0.0 移除,新專案請改用 mysqli 或 PDO_MySQL。

連線與資料庫操作

函數說明
mysql_affected_rows([link_id])回傳最近 INSERT/UPDATE/DELETE/REPLACE 影響的列數;SELECT 回傳選取列數。錯誤回傳 -1。
mysql_close([link_id])關閉指定連線。忽略 mysql_pconnect 建立的持久連線。成功回傳 true。
mysql_connect(host[:port], user, pass)建立非持久連線。參數皆可省略 (預設 localhost、PHP 進程擁有者、空密碼)。
mysql_create_db(db_name [, link_id])建立資料庫。建議改用 mysql_query("CREATE DATABASE ...")。
mysql_drop_db(db_name [, link_id])刪除資料庫。不可復原,謹慎使用。建議改用 mysql_query("DROP DATABASE ...")。
mysql_select_db(db_name [, link_id])選擇預設資料庫。(原文未列出但為核心函數)

查詢執行與錯誤處理

函數說明
mysql_query(query [, link_id])執行 SQL 查詢。SELECT 回傳結果資源;其他回傳 true/false。
mysql_db_query(db_name, query [, link_id])執行查詢前先切換資料庫。等同 mysql_select_db + mysql_query。
mysql_errno([link_id])回傳最近一次 MySQL 操作的錯誤代碼 (0 表無錯誤)。
mysql_error([link_id])回傳最近一次 MySQL 操作的錯誤訊息字串 (空字串表無錯誤)。

結果集擷取 (四大核心函數)

函數回傳型態索引方式適用場景
mysql_fetch_row(result)數值索引陣列$row[0], $row[1]...效能最佳,不需欄位名
mysql_fetch_assoc(result)關聯陣列$row['col']只需欄位名,可讀性佳
mysql_fetch_array(result [, type])混合陣列同時支援數值與關聯索引需同時兩種存取方式
mysql_fetch_object(result [, type])物件$obj->col物件導向風格

type 參數常數:MYSQL_NUM、MYSQL_ASSOC、MYSQL_BOTH (預設)。

結果集導航與中繼資料

函數說明
mysql_data_seek(result, row_num)移動結果指標到指定列 (0 起算)。
mysql_num_rows(result)回傳結果集總列數。
mysql_num_fields(result)回傳結果集欄位數。
mysql_fetch_field(result [, field_offset])回傳欄位中繼資料物件 (name, table, type, len, flags...)。
mysql_fetch_lengths(result)回傳上一列各欄位長度陣列。
mysql_field_name(result, field_index)回傳指定欄位名稱。
mysql_field_table(result, field_index)回傳指定欄位所屬資料表名稱。
mysql_field_type(result, field_index)回傳指定欄位資料型別名稱。
mysql_field_flags(result, field_index)回傳欄位旗標字串 (如 not_null, primary_key, auto_increment)。
mysql_field_len(result, field_index)回傳欄位最大長度。
mysql_field_seek(result, field_offset)設定下次 mysql_fetch_field 的起始位置。

常見陷阱提醒

  • 同名欄位覆蓋: mysql_fetch_array/assoc 若 JOIN 產生同名欄位,後者會覆蓋前者。解法:使用別名 (AS) 或改用數值索引。
  • 資源釋放: 大量查詢循環中應及時呼叫 mysql_free_result() 釋放記憶體。
  • SQL 注入: 所有使用者輸入務必經 mysql_real_escape_string() (PHP 4.3.0+) 處理,或改用 Prepared Statements (mysqli/PDO)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved