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

mysql 與 mysqli 差異比較與用法完整指南

     編輯:MySQL 資料庫相關知識

核心差異

特性mysql (舊擴充)mysqli (改良版)
連線模式非持久,每次新建進程支援持久連線,重用進程,減輕伺服器負擔
物件導向不支援支援 OO 與程序式雙介面
預處理語句不支援支援 Prepared Statements (防注入、效能佳)
交易控制不支援支援 commit/rollback
預設啟用PHP 早期預設開啟需在 php.ini 啟用 extension=php_mysqli.dll (Win) 或編譯參數 (Linux)

mysqli 程式式用法

$conn = mysqli_connect('localhost', 'root', '123', 'db_test') or die('error');
$sql = \"SELECT * FROM db_table\";
$query = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_array($query)) {
    echo $row['title'];
}

mysqli 物件導向用法

$conn = new mysqli('localhost', 'root', '123', 'db_test');
$sql = \"SELECT * FROM db_table\";
$query = $conn->query($sql);
while ($row = $query->fetch_array()) {
    echo $row['title'];
}

交易處理範例

$mysqli = new mysqli('localhost', 'root', '', 'DB_Lib2Test');
$mysqli->autocommit(false); // 開始交易
$mysqli->query($sql1);
$mysqli->query($sql2);
if (!$mysqli->errno) {
    $mysqli->commit();
    echo 'ok';
} else {
    echo 'err';
    $mysqli->rollback();
}

mysql_pconnect 補充說明

mysql_pconnect 建立持久連線,進程結束不釋放,類似連線池。優點:省去重複連線開銷;缺點:佔用記憶體與連線數,高併發易觸發 max_connections 限制。建議視流量決定是否使用。

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