溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP擴展數(shù)據(jù)庫連接參數(shù)說明詳解

發(fā)布時間:2020-06-11 09:52:35 來源:網(wǎng)絡(luò) 閱讀:510 作者:boy461205160 欄目:數(shù)據(jù)庫

名詞解釋:

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起已經(jīng)被廢棄,并從PHP7中移除。

MYSQLI 叫做 “MySQL增強擴展”。

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

PDO   PHP Data Objects PHP數(shù)據(jù)對象,是PHP應(yīng)用中的一個數(shù)據(jù)庫抽象層規(guī)范。

再補充幾個名詞解釋:

1 、什么是API?

一個應(yīng)用程序接口(Application Programming Interface的縮寫),定義了類,方法,函數(shù),變量等等一切 你的應(yīng)用程序中為了完成特定任務(wù)而需要調(diào)用的內(nèi)容。在PHP應(yīng)用程序需要和數(shù)據(jù)庫進行交互的時候所需要的API 通常是通過PHP擴展暴露出來(給終端PHP程序員調(diào)用)。

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

2、什么是驅(qū)動?

驅(qū)動是一段設(shè)計用來于一種特定類型的數(shù)據(jù)庫服務(wù)器進行交互的軟件代碼。驅(qū)動可能會調(diào)用一些庫,

比如MySQL客戶端庫或者MySQL Native驅(qū)動庫。 這些庫實現(xiàn)了用于和MySQL數(shù)據(jù)庫服務(wù)器進行交互的底層協(xié)議。

從PHP拓展的角度上看,MYSQL和MYSQLi還是比較上層的拓展,依賴更底層的庫去連接和訪問數(shù)據(jù)庫。
上文所說的MYSQLND 就是所說的底層的數(shù)據(jù)庫驅(qū)動。當(dāng)然,還有一個驅(qū)動叫做libmysqlclient。

小結(jié):

從應(yīng)用的層面上看,我們通過PHP 的MYSQL或者MYSQLi擴展提供的API去操作數(shù)據(jù)庫。

從底層來看,MYSQLND提供了底層和數(shù)據(jù)庫交互的支持(可以簡單理解為和MySQL server進行網(wǎng)絡(luò)協(xié)議交互)。

而PDO,則提供了一個統(tǒng)一的API接口,使得你的PHP應(yīng)用不去關(guān)心具體要連接的數(shù)據(jù)庫服務(wù)器系統(tǒng)類型。也就是說,如果你使用PDO的API,可以在任何需要的時候無縫切換數(shù)據(jù)庫服務(wù)器。比如MYSQL,SQLITE任何數(shù)據(jù)庫都行。

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


通過PHP代碼理解:

MYSQL連接:

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


MYSQLI連接:

<?php
$conn = mysqli_connect('localhost', 'root', '', 'bbs');
if(!$conn){
die("數(shù)據(jù)庫連接錯誤" . mysqli_connect_error());
}else{
echo"數(shù)據(jù)庫連接成功";
}
?>



PDO連接:

<?php
try{
$pdo=new pdo("mysql:host=localhost;dbname=bbs","root","");
}catch(PDDException $e){
echo"數(shù)據(jù)庫連接錯誤";
}
echo"數(shù)據(jù)庫連接成功";
?>


注意常用參數(shù)
--enable-pdo
--with-pdo-mysql
--enable-mysqlnd
--with-mysqli
--with-mysql      //php7的已經(jīng)不再支持,無論是編譯還是yum安裝都會報ERROR

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI