『壹』 php連接mysql資料庫原理是怎樣的
現在使用PDO鏈接資料庫的較多
連接是通過創建 PDO 基類的實例而建立的。不管使用哪種驅動程序,都是用 PDO 類名。構造函數接收用於指定資料庫源(所謂的 DSN)以及可能還包括用戶名和密碼(如果有的話)的參數。
連接到 MySQL
<?php
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
?>
如果有任何連接錯誤,將拋出一個 PDOException 異常對象。如果想處理錯誤狀態,可以捕獲異常,或者選擇留給通過 set_exception_handler() 設置的應用程序全局異常處理程序。
處理連接錯誤
<?php
try{
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
foreach($dbh->query('SELECT*fromFOO')as$row){
print_r($row);
}
$dbh=null;
}catch(PDOException$e){
print"Error!:".$e->getMessage()."<br/>";
die();
}
?>
如果應用程序不在 PDO 構造函數中捕獲異常,zend 引擎採取的默認動作是結束腳本並顯示一個回溯跟蹤,此回溯跟蹤可能泄漏完整的資料庫連接細節,包括用戶名和密碼。因此有責任去顯式(通過 catch 語句)或隱式(通過 set_exception_handler() )地捕獲異常。
連接數據成功後,返回一個 PDO 類的實例給腳本,此連接在 PDO 對象的生存周期中保持活動。要想關閉連接,需要銷毀對象以確保所有剩餘到它的引用都被刪除,可以賦一個 NULL 值給對象變數。如果不明確地這么做,PHP 在腳本結束時會自動關閉連接。
關閉一個連接
<?php
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
//在此使用連接
//現在運行完成,在此關閉連接
$dbh=null;
?>
很多 web 應用程序通過使用到資料庫服務的持久連接獲得好處。持久連接在腳本結束後不會被關閉,且被緩存,當另一個使用相同憑證的腳本連接請求時被重用。持久連接緩存可以避免每次腳本需要與資料庫回話時建立一個新連接的開銷,從而讓 web 應用程序更快。
『貳』 php如何連接mysql
PHP 可以使慶漏用 MySQLi 或 PDO(PHP Data Objects)擴展來連接 MySQL 資料庫。
以下是使用 MySQLi 擴展連接 MySQL 資料庫的示例代碼:虛跡
pdo
請注意,您需要替換 hostname,username,差差並password 和 database_name 為自己的資料庫連接詳細信息。
『叄』 php為什麼棄用了mysql
PHP提供了三種不同的api連接到MySQL,這三種api是:mysql, mysqli以及PDO擴展。MySql函數是非常受歡迎的,但是官方團隊並不鼓勵再使用它們。在php手冊里邊,當你看到關於Mysql的函數,會發現都標有紅色的標志,那意味著它們已經被棄用了。棄用ext/mysql函數不僅安全,而且使用其他資料庫查詢方法可以同樣具有MySQL函數的所有功能。更好的方法是使用PDO代替ext/mysql函數。
以下是PHP里不應該再使用mysql函數的3大原因:
1、mysql函數已在PHP5.5中正式棄用,並將在PHP7中被刪除。
2、mysql函數缺少面向對象的介面。
3、mysql函數不支持以下特性:
不支持非阻塞連續獲取
不支持非同步查詢
不支持參數化查詢
不支持存儲過程
不支持多個語句
不支持在MySQL 5.1的中所有功能
不支持加密(SSL)
不支持壓縮
不支持完整的字元集