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

PHP MySQL 交互函數完整參考手冊(mysqli / PDO 現代化版)

     編輯:PHP 綜合知識

從 mysql_* 到 mysqli / PDO 的演進

原文列出的 mysql_* 函數已在 PHP 7.0 完全移除。現代開發請使用 mysqli(面向過程/物件) 或 PDO(資料存取抽象層)。本文保留函數對應關係供遷移參考,並補充現代寫法。

連接管理

功能舊 mysql_*mysqli(物件)PDO
建立連接mysql_connect()new mysqli()new PDO()
持久連接mysql_pconnect()new mysqli(..., MYSQLI_CLIENT_PERSISTENT)PDO::ATTR_PERSISTENT => true
關閉連接mysql_close()$mysqli->close()$pdo = null
選擇資料庫mysql_select_db()$mysqli->select_db()DSN 指定 dbname

查詢執行

功能舊 mysql_*mysqliPDO
執行查詢mysql_query()$mysqli->query()$pdo->query()
預處理語句不支援$mysqli->prepare()$pdo->prepare()
多查詢不支援$mysqli->multi_query()不直接支援

結果集處理

功能舊 mysql_*mysqliPDO
關聯陣列mysql_fetch_assoc()$result->fetch_assoc()$stmt->fetch(PDO::FETCH_ASSOC)
數值索引mysql_fetch_row()$result->fetch_row()$stmt->fetch(PDO::FETCH_NUM)
物件mysql_fetch_object()$result->fetch_object()$stmt->fetch(PDO::FETCH_OBJ)
所有資料無$result->fetch_all()$stmt->fetchAll()
釋放結果mysql_free_result()$result->free()$stmt = null

資訊查詢

功能舊 mysql_*mysqliPDO
影響行數mysql_affected_rows()$mysqli->affected_rows$stmt->rowCount()
結果行數mysql_num_rows()$result->num_rows需自行計算
欄位數mysql_num_fields()$result->field_count$stmt->columnCount()
插入 IDmysql_insert_id()$mysqli->insert_id$pdo->lastInsertId()
錯誤訊息mysql_error()$mysqli->error$pdo->errorInfo()
錯誤代碼mysql_errno()$mysqli->errno$pdo->errorCode()

資料庫/資料表中繼資料

  • SHOW DATABASES / $mysqli->query("SHOW DATABASES")
  • SHOW TABLES / $mysqli->query("SHOW TABLES")
  • DESCRIBE table_name / $mysqli->query("DESCRIBE tbl")
  • SHOW CREATE TABLE tbl 取得建表語句
  • mysqli: $result->fetch_fields() 取得欄位物件(name, type, length, flags 等)

遷移建議

  1. 使用 PDO 作為新專案預設選擇(支援多資料庫、命名參數、異常處理)
  2. 既有 mysqli 專案可維持,但啟用 MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT 讓錯誤拋出異常
  3. 所有動態查詢必須使用預處理語句,防止 SQL 注入
  4. 統一字符集為 utf8mb4(DSN: charset=utf8mb4 / $mysqli->set_charset('utf8mb4'))
  5. 善用事務:$pdo->beginTransaction()、commit()、rollBack()
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved