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

PHP MySQL 常用擴展函數速查:連接、執行、結果集處理、事務、預處理

     編輯:MySQL 綜合教學

PHP MySQL 常用擴展函數速查:連接、執行、結果集處理、事務、預處理

聚焦 PHP mysql_* 扩展(歷史版本)與現代 mysqli/PDO 的核心 API 對照,涵蓋連接建立、SQL 執行分類、結果集四種遍歷方式、結果集輔助函數、預處理語句、事務控制,適合維護舊項目與新項目技術選型對比。

一、連接與基礎操作 (mysql_* vs mysqli vs PDO)

操作mysql_* (棄用)mysqli (OO)PDO
連接mysql_connect()new mysqli()new PDO()
選庫mysql_select_db()$mysqli->select_db()DSN 中指定
字符集mysql_query('SET NAMES utf8')$mysqli->set_charset('utf8mb4')DSN charset=utf8mb4
執行 SQLmysql_query()$mysqli->query() / prepare()$pdo->query() / prepare()
影響行數mysql_affected_rows()$mysqli->affected_rows$stmt->rowCount()
插入 IDmysql_insert_id()$mysqli->insert_id$pdo->lastInsertId()
錯誤碼/信息mysql_errno()/error()$mysqli->errno/error$stmt->errorCode()/errorInfo()
關閉mysql_close()$mysqli->close()$pdo = null

二、結果集遍歷四種風格 (mysqli 為例)

$result = $mysqli->query('SELECT id,name,email FROM user');

// 1. 關聯數組 (推薦)
while($row = $result->fetch_assoc()) { echo $row['name']; }

// 2. 索引數組
while($row = $result->fetch_row()) { echo $row[1]; }

// 3. 雙模式
while($row = $result->fetch_array(MYSQLI_ASSOC)) { ... }

// 4. 對象
while($obj = $result->fetch_object()) { echo $obj->name; }

三、結果集輔助函數

函數說明
num_rows結果集行數
num_fields列數
fetch_field_direct()獲取列元數據 (名、類型、長度)
data_seek(offset)移動內部指針到指定行
fetch_lengths()每列值長度數組
free()釋放結果集內存

四、預處理語句 (Prepared Statements) — 防注入核心

// mysqli
$stmt = $mysqli->prepare('INSERT INTO user(name,email) VALUES(?,?)');
$stmt->bind_param('ss', $name, $email);
$stmt->execute();

// PDO
$stmt = $pdo->prepare('INSERT INTO user(name,email) VALUES(:name,:email)');
$stmt->execute([':name'=>$name, ':email'=>$email]);

五、事務控制

// mysqli
$mysqli->begin_transaction();
try {
  $mysqli->query('INSERT ...');
  $mysqli->query('UPDATE ...');
  $mysqli->commit();
} catch (Exception $e) {
  $mysqli->rollback();
}

// PDO
$pdo->beginTransaction();
try {
  $pdo->exec('INSERT ...');
  $pdo->exec('UPDATE ...');
  $pdo->commit();
} catch (Exception $e) {
  $pdo->rollBack();
}

六、啟用擴展檢查清單

  1. php.ini 中啟用:extension=mysqli、extension=pdo_mysql (去掉分號)
  2. extension_dir = "ext" 指向正確目錄
  3. 重啟 Web 服務 (Apache/Nginx+PHP-FPM)
  4. 驗證:php -m | grep -E 'mysqli|pdo_mysql' 或 phpinfo()

七、phpMyAdmin 提示「未啟用 MySQL 擴展」解決

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