PHP擴充資料庫連接參數說明詳解

來源:互聯網
上載者:User

標籤:php擴充資料庫連接參數說明詳解

名詞解釋:mysqli,mysqlnd,pdo到底是什嗎?,有什麼用途?

 MySQL: This extension is deprecated as of PHP 5.5.0, and has been removed as of php 7.0.0.
 MYSQLI:  mysql Improved Extension  
 MySQLND: MySQL Native Drive
 PDO:The PHP Data Objects。extension defines a lightweight, consistent interface for accessing databases in PHP。

以上,摘自 PHP官方手冊: http://php.net/manual/en/book.mysqli.php

以下為中文翻譯:
MYSQL 也叫 Original MySQL,PHP4版本的MYSQL擴充,從PHP5起已經被廢棄,並從PHP7中移除。

MYSQLI 叫做 “MySQL增強擴充”。

MYSQLND MYSQL NATIVE DIRVER 叫做MYSQL “官方驅動”或者更加直接點的叫做“原生驅動”

PDO   PHP Data Objects PHP資料對象,是PHP應用中的一個資料庫抽象層規範。

再補充幾個名詞解釋:

1 、什麼是API?

一個應用程式介面(Application Programming Interface的縮寫),定義了類,方法,函數,變數等等一切 你的應用程式中為了完成特定任務而需要調用的內容。在PHP應用程式需要和資料庫進行互動的時候所需要的API 通常是通過PHP擴充暴露出來(給終端PHP程式員調用)。

上文所說的MYSQL 和MYSQLI擴充就提供了這樣的API。

2、什麼是驅動?

驅動是一段設計用來於一種特定類型的資料庫伺服器進行互動的軟體代碼。驅動可能會調用一些庫,

比如MySQL用戶端庫或者MySQL Native驅動庫。 這些庫實現了用於和MySQL資料庫伺服器進行互動的底層協議。

從PHP拓展的角度上看,MYSQL和MYSQLi還是比較上層的拓展,依賴更底層的庫去串連和訪問資料庫。
上文所說的MYSQLND 就是所說的底層的資料庫驅動。當然,還有一個驅動叫做libmysqlclient。

小結:

從應用的層面上看,我們通過PHP 的MYSQL或者MYSQLi擴充提供的API去操作資料庫。

從底層來看,MYSQLND提供了底層和資料庫互動的支援(可以簡單理解為和MySQL server進行網路通訊協定互動)。

而PDO,則提供了一個統一的API介面,使得你的PHP應用不去關心具體要串連的資料庫伺服器系統類別型。也就是說,如果你使用PDO的API,可以在任何需要的時候無縫切換資料庫伺服器。比如MYSQL,SQLITE任何資料庫都行。

即從大部分功能上看,PDO提供的API介面和MYSQLI提供的介面對於普通的增刪改查效果是一致的。


通過PHP代碼理解:

MYSQL串連:

<?php$conn = @ mysql_connect("localhost", "root", "") or die("資料庫連接錯誤");mysql_select_db("bbs", $conn);mysql_query("set names ‘utf8‘");echo "資料庫連接成功";?>


MYSQLI串連:

<?php$conn = mysqli_connect(‘localhost‘, ‘root‘, ‘‘, ‘bbs‘);if(!$conn){die("資料庫連接錯誤" . mysqli_connect_error());}else{echo"資料庫連接成功";}?>



PDO串連:

<?phptry{$pdo=new pdo("mysql:host=localhost;dbname=bbs","root","");}catch(PDDException $e){echo"資料庫連接錯誤";}echo"資料庫連接成功";?>


注意常用參數
--enable-pdo
--with-pdo-mysql
--enable-mysqlnd
--with-mysqli
--with-mysql      //php7的已經不再支援,無論是編譯還是yum安裝都會報ERROR

本文出自 “boyhack” 部落格,請務必保留此出處http://461205160.blog.51cto.com/274918/1943416

PHP擴充資料庫連接參數說明詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.