六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

以多種方式調(diào)用構(gòu)造方法創(chuàng)建PDO對(duì)象

[摘要]以多種方式調(diào)用構(gòu)造方法創(chuàng)建PDO對(duì)象可以以多種昂方式調(diào)構(gòu)造方法創(chuàng)建PDO對(duì)象,下面以連接MySQL 和 Oracle 服務(wù)器為例,分別介紹構(gòu)造方法的多種調(diào)用方式。一、將參數(shù)嵌入到構(gòu)造函數(shù)在下面的連接Oracle 服務(wù)器的示例中,在DSN字符串中加載OCI驅(qū)動(dòng)程序并指定里兩個(gè)可選參數(shù):第一個(gè)是數(shù)據(jù)...
以多種方式調(diào)用構(gòu)造方法創(chuàng)建PDO對(duì)象

可以以多種昂方式調(diào)構(gòu)造方法創(chuàng)建PDO對(duì)象,下面以連接MySQL 和 Oracle 服務(wù)器為例,分別介紹構(gòu)造方法的多種調(diào)用方式。

一、將參數(shù)嵌入到構(gòu)造函數(shù)

在下面的連接Oracle 服務(wù)器的示例中,在DSN字符串中加載OCI驅(qū)動(dòng)程序并指定里兩個(gè)可選參數(shù):第一個(gè)是數(shù)據(jù)庫名稱,第二個(gè)是字符集。使用了特定的字符集連接一個(gè)特定的數(shù)據(jù)庫,如果不指定任何信息就會(huì)使用默認(rèn)的數(shù)據(jù)庫。代碼如下:

<?php
try{
    $dbh = new PDO("OCI:dbname = accounts;charset=UTF8","scott","tiger");
}catch (PDOException $e){
    echo "數(shù)據(jù)庫連接失敗:".$e->getMessage();
}
?>

OCI:dbname = accounts告訴PDO它應(yīng)該使用 OCI驅(qū)動(dòng)程序,并且應(yīng)該使用“accounts”數(shù)據(jù)庫。對(duì)于MySQL驅(qū)動(dòng)程序,第一個(gè)冒號(hào)后面的所有內(nèi)容都將會(huì)被用作MySQL的DSN。連接MySQL 服務(wù)器的顯示如下:

<?php
$dbms = "mysql";                                  // 數(shù)據(jù)庫的類型
$dbName ="php_cn";                                //使用的數(shù)據(jù)庫名稱
$user = "root";                                   //使用的數(shù)據(jù)庫用戶名
$pwd = "root";                                    //使用的數(shù)據(jù)庫密碼
$host = "localhost";                              //使用的主機(jī)名稱
$dsn  = "$dbms:host=$host;dbname=$dbName";
try {
    $pdo = new PDO($dsn, $user, $pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫連接對(duì)象$pdo
}catch (PDOException $e){
   echo "數(shù)據(jù)庫連接失敗:".$e->getMessage();
}
?>

其他的驅(qū)動(dòng)程序會(huì)同樣以不同的方式解析它的DSN,如果無法加載驅(qū)動(dòng)程序,或者發(fā)生了連接失敗,則會(huì)拋出一個(gè)PDOException,以便您可以決定如何最好的處理該故障。省略try...catch 控制結(jié)構(gòu)并無裨益,如果在應(yīng)用程序的較高級(jí)別沒有定義異常處理,那么在無法建立數(shù)據(jù)庫連接的情況下,該腳本會(huì)終止。

二、將參數(shù)存放在文件中

在創(chuàng)建PDO對(duì)象時(shí),可以把DSN字符串放在另一個(gè)本地或者遠(yuǎn)程文件中,并在構(gòu)造函數(shù)中引用這個(gè)文件,如下所示:

<?php
try{
    $dbh = new PDO('uri:file:///usr/localhost/dbconnect','webuser','password');
}catch(PDOException $e){
    echo '連接失敗:'.$e->getMessage();
}
?>

只要將文件/usr/localhost/dbconnect中的DSN驅(qū)動(dòng)改變,就可以在多種數(shù)據(jù)庫系統(tǒng)之間切換,但是確保該文件由負(fù)責(zé)執(zhí)行PHP腳本的用戶所擁有,而且此用戶擁有必要的權(quán)限。

三、引用 php.ini文件

也可以在PHP服務(wù)器的配置文件中維護(hù)DSN信息,只要在php.ini文件中吧DSN信息付給一個(gè)名為 pdo.dsn.aliasname 的配置參數(shù),這里 aliasname 是后面將提供給構(gòu)造函數(shù)的DSN別名。如下所示連接Oracle 服務(wù)器,在php.ini中為DSN指定的別名為 oraclepdo:

【PDO】
pdo.dsn.oraclepdo = “OCI:dbname=//localhost:1521/mydb;chaset=UTF-8”;

重新啟動(dòng) Apaceh服務(wù)器后,就可以在php程序中,調(diào)用PDO構(gòu)造方法時(shí),在第一個(gè)參數(shù)中使用這個(gè)別名,如下所示:

<?php
try{
    $dbh = new PDO('oraclepdo','scott','tiger');//使用php.ini文件中的oraclepdo 別名
}catch(PDOException $e){
    echo '連接失敗:'.$e->getMessage();
}
?>

四、PDO與連接有關(guān)的選項(xiàng)

在創(chuàng)建PDO對(duì)象時(shí),有一些與數(shù)據(jù)庫連接有關(guān)選項(xiàng),可以將必要的幾個(gè)選項(xiàng)組成數(shù)組傳遞給構(gòu)造方法的第四個(gè)參數(shù) driver_opts中,用來傳遞附加的調(diào)優(yōu)參數(shù)到PDO貨底層驅(qū)動(dòng)程序。一些常用的使用選項(xiàng)如表:

選項(xiàng)名描述
PDO::ATTR_AUTOCOMMIT確定PDO是否關(guān)閉自定提交功能,設(shè)置FALSE值時(shí)關(guān)閉
PDO::ATTR_CASE強(qiáng)制PDO獲取的表字段字符的大小轉(zhuǎn)換,或遠(yuǎn)原樣使用列信息
PDO::ATTR_ERRMODE設(shè)置錯(cuò)誤處理的模式
PDO::ATTR_PERSISTENT確定連接是否為持久連接,默認(rèn)值為FALSE
PDO::ATTR_ORACCLE_NULLS將返回的空字符串轉(zhuǎn)換為SQL的NULL
PDO::ATTR_PREFETCH設(shè)置應(yīng)用程序提前獲取的數(shù)據(jù)大小,以K字節(jié)單位
PDO::ATTR_TIMEOUT設(shè)置超市之前等待的時(shí)間(秒數(shù))
PDO::ATTR_SERVER_INFO包含與數(shù)據(jù)庫特有的服務(wù)器信息
PDO::ATTR_SERVER_VERSION包含與數(shù)據(jù)庫服務(wù)器版本號(hào)有關(guān)的信息
PDO::ATTR_CLIENT_VERSION包含與數(shù)據(jù)庫客戶端版本號(hào)有關(guān)的信息
PDO::ATTR_CONNECTION_STATUS包含數(shù)據(jù)庫特有的與連接狀態(tài)有關(guān)的信息

設(shè)置選項(xiàng)名為下表組成的關(guān)聯(lián)數(shù)組,作為驅(qū)動(dòng)程序特定的連接選項(xiàng),傳遞給PDO構(gòu)造方法的第四各參數(shù)中,在下面的實(shí)例中使用連接選項(xiàng)創(chuàng)建持久連接,持久連接的好處是能夠避免在每個(gè)頁面執(zhí)行到打開和關(guān)閉數(shù)據(jù)庫服務(wù)器連接,速度更快,如 MySQL數(shù)據(jù)庫的一個(gè)進(jìn)程創(chuàng)建了兩個(gè)連接,PHP則會(huì)把原有連接與新的連接合并共享為一個(gè)連接,代碼如下:

<?php
$opt = array(PDO::ATTR_PERSISTENT =>true);
try{
    $dbh = new PDO('mysql:host=localhost;dbname=test','dbuser','password',$opt); //使用$opt參數(shù)
}catch(PDOException $e){
    echo '連接失敗:'.$e->getMessage();
}
?>

以上就是關(guān)于以多種方式調(diào)用構(gòu)造方法創(chuàng)建PDO對(duì)象的所有內(nèi)容,小伙伴們都理解了嗎?可以在自己本地試一試!

以上就是以多種方式調(diào)用構(gòu)造方法創(chuàng)建PDO對(duì)象的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。




主站蜘蛛池模板: 午夜在线日韩免费精品福利 | 日韩黄色一级片 | 最近韩国中文字幕更新 | 午夜视频在线免费播放 | 日本xxxx在线观看 | 青青青在线网站视频在线 | 青娱娱乐盛宴免费一二区 | 日本高清视频在线www色下载 | 中文学幕专区 | 天天躁日日躁狠狠躁黑人躁 | 青青青视频免费线看 视频 青青青视频免费观看 | 亚洲va国产va天堂va久久 | 人人看操| 欧美一级黄色录像片 | 日韩新片在线观看 | 日本在线视频网站www色下载 | 三级国产视频 | 羞羞漫画在线阅读页面漫画入口页面弹窗无限 | 色综合久久夜色精品国产 | 四虎精品成人免费影视 | 亚洲v日本v欧美v综合v | 日本网址在线观看 | 伊人| 亚洲丁香婷婷综合久久六月 | 日韩在线观看网址 | 亚洲精品成人网 | 天天夜夜人人 | 婷婷综合激六月情网 | 日本亚洲国产 | 夭天干天天做天天免费看 | 日韩在线a视频免费播放 | 又粗又硬又大又爽免费观看 | 欧美性乱 | 亚洲视频中文字幕在线观看 | 深夜 免费 视频 | 日日碰日日摸日日澡视频播放 | 日本视频网址 | 特黄特色的大片观看免费视频 | 青草视频在线观看免费视频 | 日日日干| 日韩精品久久一区二区三区 |