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

MySQLi 物件導向操作 vs 傳統 mysql 程序式操作完整對比

     編輯:MySQL 綜合教學

傳統 mysql 擴展(程序式)

<?php
$con = mysql_connect("localhost", "root", "toor");
if (!$con) { echo "連線失敗"; exit(); }
mysql_select_db("test");
mysql_query("set names utf8");
$sql = "select * from test1";
$res = mysql_query($sql, $con);
while ($row = mysql_fetch_row($res)) {
    echo "$row[0]-------------$row[1]-----------$row[2]-----------$row[3]-----------$row[4]".'
'; } mysql_free_result($res); mysql_close($con); ?>

MySQLi 擴展(物件導向)

<?php
$mysqli = new MySQLi("localhost", "root", "toor", "test");
if ($mysqli->connect_error) {
    die("連線失敗 錯誤訊息:" . $mysqli->connect_error);
} else {
    echo "連線成功<br/>";
}
$sql = "select * from test.test1";
$res = $mysqli->query($sql);
while ($row = $res->fetch_row()) {
    foreach ($row as $key => $value) {
        echo $value . " ";
    }
    echo "<br/>";
}
$res->free();
$mysqli->close();
?>

關鍵差異對比

特性mysql (程序式)mysqli (物件導向)
連線方式分步驟:連線 → 選庫 → 設編碼建構子一次完成
錯誤處理需手動檢查每步回傳值物件屬性 connect_error 統一處理
查詢執行mysql_query($sql, $con)$mysqli->query($sql)
結果遍歷mysql_fetch_row($res)$res->fetch_row()
資源釋放mysql_free_result() / mysql_close()$res->free() / $mysqli->close()
程式碼複雜度較高,重複參數傳遞較低,封裝性佳
安全性無預處理支援支援預處理語句,防 SQL 注入

結論

MySQLi 不僅在設計哲學上更先進,程式碼也更簡潔安全。學習完舊版 mysql 後,務必掌握 MySQLi,這是現代 PHP 開發的必備技能。

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