PHP中PDO怎么使用

這篇文章主要介紹了PHP中PDO怎么使用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

靖州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!

一、基本知識(shí)

1、什么是PDO?

PDO就是PHP data Object 提供了PHP操作多種數(shù)據(jù)庫(kù)的統(tǒng)一的接口

2、為什么要使用PDO?

PDO是PHP5新加入的一個(gè)重大功能,我們的數(shù)據(jù)庫(kù)服務(wù)器為MySQL,所有的程序代碼的數(shù)據(jù)庫(kù)操作全是一mysql()或者mysqli()函數(shù)來(lái)操作,當(dāng)我們的數(shù)據(jù)庫(kù) 需要更換時(shí)比如換成,SQL、SERVER、PostgreSQL、MS 等,我們不可能去修改所有的程序代碼!所以就要用到PDO,PDO很好的幫我們解決了這個(gè)問(wèn)題,使用PDO操作非常方便,只需要修改數(shù)據(jù)源格式,和加載相應(yīng)的驅(qū)動(dòng)文件到PHP.ini即可;

3、PDO都有哪些特點(diǎn)?
1)編碼的一致性

由于PHP可用的各種數(shù)據(jù)庫(kù)擴(kuò)展是由不同發(fā)行者編寫(xiě)的,所以盡管所有的擴(kuò)展都提供了基本相同的特性,卻不 滿 足編碼的一致性。PDO消除了這種不一致,提供了可用于各種數(shù)據(jù)庫(kù)的單一接口;

2)靈活性

因?yàn)镻DO在運(yùn)行時(shí)加載必須的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,所以不需要在每次使用不同數(shù)據(jù)庫(kù)時(shí)重新配置和重新編譯PHP。例如,如果數(shù)據(jù)庫(kù)需要從SQL切換到MySQL,只需要加載PDO_MYSQL驅(qū)動(dòng)程序就可以了。

3)面向?qū)ο筇匦?/h6>

PDO利用PHP5的面向?qū)ο筇匦?,可以獲得更強(qiáng)大、更高效的數(shù)據(jù)庫(kù)通信。

4)高性能

PDO是用C編寫(xiě)的,編譯為PHP,與用PHP編寫(xiě)的其他解決方案相比,雖然其他都相同,但提供了更高的性能。

二、PDO基本使用

1、PDO的配置

1)修改php.ini,添加MySQL的PDO擴(kuò)展

打開(kāi)PHP配置文件php.ini,找到php_pdo_mysql.dll這行去掉錢(qián)買(mǎi)你的分號(hào)

2)擴(kuò)展目錄中要有相應(yīng)的擴(kuò)展文件

打開(kāi)PHP配置文件php.ini,找到extension_dir,這個(gè)就是我們擴(kuò)展存在的目錄,首先去掉前面的分號(hào),然后修改擴(kuò)展目錄,我的擴(kuò)展目錄是在"E:/Web/php/ext",就改成extension_dir="E:/Web/php/ext"。

3)PDO連接不同的數(shù)據(jù),要有不同的數(shù)據(jù)庫(kù)驅(qū)動(dòng)文件,即我們所加入配置文件的擴(kuò)展
4)重新啟動(dòng)服務(wù)器,IIS/Apache,我的是apache,使配置生效

2、數(shù)據(jù)源配置的格式

1)數(shù)據(jù)源格式

(1)連接數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)的用戶(hù)名、數(shù)據(jù)庫(kù)的密碼

語(yǔ)法:$dsn =“數(shù)據(jù)庫(kù)類(lèi)型:dbname=數(shù)據(jù)庫(kù)名;host=數(shù)據(jù)庫(kù)的域名”;

$user = "數(shù)據(jù)庫(kù)的用戶(hù)名";

$password = "數(shù)據(jù)庫(kù)的密碼";

例:$dsn = "mysql:dbname=test;host=127.0.0.1";

$user = "root";

$password="123456";

(2)聲明對(duì)象

$object = new PDO($dsn,$user,$password);

3、方法講解

1)添加

主要思路:

(1)連接數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)的用戶(hù)名、數(shù)據(jù)庫(kù)的密碼

(2)生成PDO對(duì)象

(3)執(zhí)行添加

實(shí)現(xiàn)代碼如下:

<?php
header('content-type:text/html;charset=utf8');
//連接數(shù)據(jù)庫(kù)
$dsn="mysql:dbname=test;host=127.0.0.1";
//數(shù)據(jù)庫(kù)的用戶(hù)名
$user="root";
//數(shù)據(jù)庫(kù)的密碼
$password="123456";
//生成PDO對(duì)象
$object = new PDO($dsn,$user,$password);
//執(zhí)行添加
$sql="insert into student(`name`,`sex`,`sex`) values('zhangsan','男','18')";
if($object->exec($sql)){
    echo '添加成功';
}

注釋?zhuān)篹xec主要用于執(zhí)行沒(méi)有返回結(jié)果集的操作,比如insert、delete、update,返回的是影響的記錄條數(shù)

2)查詢(xún)

(1)查詢(xún)方式一:  

主要思路:

(1)連接數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)的用戶(hù)名、數(shù)據(jù)庫(kù)的密碼  

(2)生成PDO對(duì)象  

(3)執(zhí)行查詢(xún)

實(shí)現(xiàn)代碼:

<?php
header('content-type:text/html;charset=utf8');
//連接數(shù)據(jù)庫(kù)
$dsn="mysql:dbname=test;host=127.0.0.1";
//數(shù)據(jù)庫(kù)的用戶(hù)名
$user="root";
//數(shù)據(jù)庫(kù)的密碼
$password="123456";
//生成PDO對(duì)象
$object = new PDO($dsn,$user,$password);

$sql="select * from student";
$result = $object->query($sql);
while($arr=$result->fetch()){
    print_r($arr);
}

查詢(xún)結(jié)果為:

PHP中PDO怎么使用

$result的打印結(jié)果為:

PHP中PDO怎么使用

還可以用:

$data=$result->fetchAll();
print_r($student_info);

輸出結(jié)果為二維數(shù)組:

PHP中PDO怎么使用
    注釋?zhuān)?/strong>

               1、query()執(zhí)行查詢(xún)語(yǔ)句,返回結(jié)果集對(duì)象;

2、用循環(huán)利用fetch()方法逐個(gè)的取出記錄,返回的是關(guān)聯(lián)數(shù)組和索引數(shù)組兩種數(shù)組,和mysql_fetch_array()的返回結(jié)果一致

               3、fetchAll()方法可以一次取出結(jié)果集中所有的數(shù)組,以二維數(shù)組的形式返回,但仍然是關(guān)聯(lián)數(shù)組和索引數(shù)組兩種數(shù)組

       數(shù)字索引和關(guān)聯(lián)索引都有,屬于浪費(fèi)資源,我們只需要關(guān)聯(lián)索引:還可用用一下方式查詢(xún):

$object->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$result = $object->query($sql);
$result->setFetchMode(PDO::FETCH_ASSOC);
$result_array = $result->fetchAll();
print_r($result_array);

結(jié)果為:

PHP中PDO怎么使用

注釋?zhuān)?/strong>

       setAttribute()方法是設(shè)置部分屬性,主要屬性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等,我們?cè)O(shè)置的是PDO::ATTR_CASE(使用關(guān)聯(lián)索引獲取數(shù)據(jù))

PDO::CASE_UPPER是設(shè)置關(guān)聯(lián)索引為大寫(xiě),

PDO::CASE_LOWER  --  強(qiáng)制列名為小寫(xiě)

PDO::CASE_NATURAL -- 列名按照原始方式

PDO::CASE_UPPER -- 強(qiáng)制列名為大寫(xiě)

   setFetchMode()方法設(shè)置獲取結(jié)果集的返回值類(lèi)型,同樣類(lèi)型還有:

PDO::FETCH_ASSOC --關(guān)聯(lián)數(shù)組形式

PDO::FETCH_NUM -- 數(shù)字索引形式數(shù)組

PDO::FETCH_BOTH --兩者數(shù)組形式都有

PDO::FETCH_OBJ -- 按照對(duì)象的形式,類(lèi)似于以前的mysql_fetch_object()      

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“PHP中PDO怎么使用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

名稱(chēng)欄目:PHP中PDO怎么使用
標(biāo)題URL:http://muchs.cn/article38/iioesp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站策劃服務(wù)器托管、網(wǎng)站制作網(wǎng)站營(yíng)銷(xiāo)、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)