男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站

連接與連接管理

連接是通過(guò)創(chuàng )建 PDO 基類(lèi)的實(shí)例而建立的。不管使用哪種驅動(dòng)程序,都是用 PDO 類(lèi)名。構造函數接收用于指定數據庫源(所謂的 DSN)以及可能還包括用戶(hù)名和密碼(如果有的話(huà))的參數。

示例 #1 連接到 MySQL

<?php
$dbh 
= new PDO('mysql:host=localhost;dbname=test'$user$pass);
?>

如果有任何連接錯誤,將拋出一個(gè) PDOException 異常對象。如果想處理錯誤狀態(tài),可以捕獲異常,或者選擇留給通過(guò) set_exception_handler() 設置的應用程序全局異常處理程序。

示例 #2 處理連接錯誤

<?php
try {
    
$dbh = new PDO('mysql:host=localhost;dbname=test'$user$pass);
    foreach(
$dbh->query('SELECT * from FOO') as $row) {
        
print_r($row);
    }
    
$dbh null;
} catch (
PDOException $e) {
    print 
"Error!: " $e->getMessage() . "<br/>";
    die();
}
?>

警告

如果應用程序不在 PDO 構造函數中捕獲異常,zend 引擎采取的默認動(dòng)作是結束腳本并顯示一個(gè)回溯跟蹤,此回溯跟蹤可能泄漏完整的數據庫連接細節,包括用戶(hù)名和密碼。因此有責任去顯式(通過(guò) catch 語(yǔ)句)或隱式(通過(guò) set_exception_handler() )地捕獲異常。

連接數據成功后,返回一個(gè) PDO 類(lèi)的實(shí)例給腳本,此連接在 PDO 對象的生存周期中保持活動(dòng)。要想關(guān)閉連接,需要銷(xiāo)毀對象以確保所有剩余到它的引用都被刪除,可以賦一個(gè) null 值給對象變量。如果不明確地這么做,PHP 在腳本結束時(shí)會(huì )自動(dòng)關(guān)閉連接。

示例 #3 關(guān)閉一個(gè)連接

<?php
$dbh 
= new PDO('mysql:host=localhost;dbname=test'$user$pass);
// 在此使用連接


// 現在運行完成,在此關(guān)閉連接
$dbh null;
?>

很多 web 應用程序通過(guò)使用到數據庫服務(wù)的持久連接獲得好處。持久連接在腳本結束后不會(huì )被關(guān)閉,且被緩存,當另一個(gè)使用相同憑證的腳本連接請求時(shí)被重用。持久連接緩存可以避免每次腳本需要與數據庫回話(huà)時(shí)建立一個(gè)新連接的開(kāi)銷(xiāo),從而讓 web 應用程序更快。

示例 #4 持久化連接

<?php
$dbh 
= new PDO('mysql:host=localhost;dbname=test'$user$pass, array(
    
PDO::ATTR_PERSISTENT => true
));
?>

注意:

如果想使用持久連接,必須在傳遞給 PDO 構造函數的驅動(dòng)選項數組中設置 PDO::ATTR_PERSISTENT 。如果是在對象初始化之后用 PDO::setAttribute() 設置此屬性,則驅動(dòng)程序將不會(huì )使用持久連接。

注意:

如果使用 PDO ODBC 驅動(dòng)且 ODBC 庫支持 ODBC 連接池(有unixODBC 和 Windows 兩種做法;可能會(huì )有更多),建議不要使用持久的 PDO 連接,而是把連接緩存留給 ODBC 連接池層處理。 ODBC 連接池在進(jìn)程中與其他模塊共享;如果要求 PDO 緩存連接,則此連接絕不會(huì )被返回到 ODBC 連接池,導致創(chuàng )建額外的連接來(lái)服務(wù)其他模塊。

男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站