PHP擴展 Mysql 與 Mysqli

PHP開發中,使用Mysql擴展來鏈接Mysql數據庫進行增刪改查等操作。

在選擇Mysql擴展的時候,官方提供了兩種:

MySQL 原始版。

http://cn.php.net/manual/zh/book.mysql.php

從 PHP 5.5.0 起這個擴展已經被廢棄,并且從 PHP 7.0.0. 開始被移除。

作為替代,可以使用 mysqli 或者 PDO_MySQL 擴展代替。

MySQL 原始版

MySQL 增強版。

http://cn.php.net/manual/zh/book.mysqli.php

mysqli擴展允許我們訪問MySQL 4.1及以上版本提供的功能。

特性比較

特性 mysqli mysql
PHP版本 >=5.0 >3.0
MySQL開發狀態 活躍 僅維護
MySQL建議使用 首選 建議
API的字符集支持
存儲過程支持情況
多語句執行支持情況
是否支持所有MySQL4.1以上功能

MySQLi 的 i 代表 Improvement。

MySQL 增強版

相關概念

MySQL 與 MySQLi 都是PHP方面的函數集。

在 PHP5 版本以后,增加了mysqli的函數功能。

某種意義上講,它是MySQL系統函數的增強版,更穩定更高效更安全。

連接進程

MySQL 每次鏈接都會打開一個連接的進程。

MySQLi 多次運行將使用同一連接進程,減少了服務器的開銷。

鏈接方式

<?php
  //Mysql連接
  $conn = @mysql_connect("localhost", "root", "") or die("數據庫連接錯誤");
  mysql_select_db("user", $conn);
  mysql_query("set names 'utf8'");
  echo "數據庫連接成功";

  //Mysqli連接
  $conn = mysqli_connect('localhost', 'root', '', 'user');
  if (!$conn) {
    die("數據庫連接錯誤" . mysqli_connect_error());
  } else {
    echo"數據庫連接成功";
  }

順便說 mysqlnd

Mysql Native驅動(Mysql Native Driver 簡稱:mysqlnd)。

在 PHP5.3.0 版本中被引入。

在 PHP5.4 之后的版本mysqlnd被作為默認配置選項。

由zend公司開發的MySQL數據庫驅動。

mysqlnd 提供了和Zend引擎高度的集成性,更加快速的執行速度,更少的內存消耗,利用了PHP的Stream API,以及客戶端緩存機制。

由于 mysqlnd 是透過Zend引擎,因此提供更多高級特性,以及有效利用Zend進行加速。

mysqlnd

建議

PHP版本為5.x建議使用 mysqli 擴展。

PHP版本為7 只能使用 mysqli 擴展。


Thanks ~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.LAMP介紹 ? LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹閱讀 1,086評論 0 1
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 1,860評論 0 3
  • php.ini設置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 6,834評論 3 64
  • Welcome 目前網絡上充斥著大量的陳舊信息,讓PHP新手誤入歧途,傳播著錯誤的實踐和糟糕的代碼,這必須得到糾正...
    layjoy閱讀 21,724評論 7 118
  • 記得高中的時候,我們班上有個女同學在她的作文里寫道,她覺得班里的每一個同學都這么可愛,每個人身上都有美好的東西。她...
    紅浚閱讀 591評論 0 0