欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          深入了解PHP中PDO的基本使用

          本篇文章給大家?guī)?lái)pdo的相關(guān)基礎(chǔ)知識(shí),PDO是PHP5新加入的一個(gè)重大功能,我們的數(shù)據(jù)庫(kù)服務(wù)器為MySQL,所有的程序代碼的數(shù)據(jù)庫(kù)操作全是一mysql或者mysqli()函數(shù)來(lái)操作,希望對(duì)大家有幫助。

          深入了解PHP中PDO的基本使用

          一、基本知識(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ā)行者編寫的,所以盡管所有的擴(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ū)ο筇匦?/h5>

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

          4)高性能

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

          二、PDO基本使用

          1、PDO的配置

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

          打開PHP配置文件php.ini,找到php_pdo_mysql.dll這行去掉錢買你的分號(hào)

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

          打開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ù)的用戶名、數(shù)據(jù)庫(kù)的密碼

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

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

          $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ù)的用戶名、數(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ù)的用戶名 $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 '添加成功'; }

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

          2)查詢

          (1)查詢方式一:

          主要思路:

          (1)連接數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)的用戶名、數(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ù)的用戶名 $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); }

          查詢結(jié)果為:

          深入了解PHP中PDO的基本使用

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

          深入了解PHP中PDO的基本使用

          還可以用:

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

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

          深入了解PHP中PDO的基本使用
          注釋:

          1、query()執(zhí)行查詢語(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)索引:還可用用一下方式查詢:

          $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的基本使用

          注釋:

          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)索引為大寫,

          PDO::CASE_LOWER — 強(qiáng)制列名為小寫

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

          PDO::CASE_UPPER — 強(qiáng)制列名為大寫

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

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

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

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

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

          大家如果感興趣的話,可以點(diǎn)擊《PHP視頻教程》進(jìn)行

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)