站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

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

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

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

        一、基本知識

        1、什么是PDO?

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

        2、為什么要使用PDO?

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

        3、PDO都有哪些特點?

        1)編碼的一致性

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

        2)靈活性

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

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

        PDO利用PHP5的面向?qū)ο筇匦裕梢垣@得更強大、更高效的數(shù)據(jù)庫通信。

        4)高性能

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

        二、PDO基本使用

        1、PDO的配置

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

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

        2)擴展目錄中要有相應的擴展文件

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

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

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

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

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

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

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

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

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

        $user = "root";

        $password="123456";

        (2)聲明對象

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

        3、方法講解

        1)添加

        主要思路:

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

        (2)生成PDO對象

        (3)執(zhí)行添加

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

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

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

        2)查詢

        (1)查詢方式一:

        主要思路:

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

        (2)生成PDO對象

        (3)執(zhí)行查詢

        實現(xiàn)代碼:

        <?php header('content-type:text/html;charset=utf8'); //連接數(shù)據(jù)庫 $dsn="mysql:dbname=test;host=127.0.0.1"; //數(shù)據(jù)庫的用戶名 $user="root"; //數(shù)據(jù)庫的密碼 $password="123456"; //生成PDO對象 $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í)行查詢語句,返回結(jié)果集對象;

        2、用循環(huán)利用fetch()方法逐個的取出記錄,返回的是關(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)索引都有,屬于浪費資源,我們只需要關(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()方法是設置部分屬性,主要屬性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等,我們設置的是PDO::ATTR_CASE(使用關(guān)聯(lián)索引獲取數(shù)據(jù))

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

        PDO::CASE_LOWER — 強制列名為小寫

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

        PDO::CASE_UPPER — 強制列名為大寫

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

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

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

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

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

        大家如果感興趣的話,可以點擊《PHP視頻教程》進行

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 亚洲精品第一国产综合境外资源 | 午夜精品久久久久久久无码| 亚洲国产精品自在在线观看| 亚洲精品tv久久久久| 久久精品国产99久久丝袜| 精品一区二区三区四区在线| 蜜臀久久99精品久久久久久小说| 亚洲欧美日韩久久精品第一区| 久久亚洲精品无码播放| 日韩精品久久久肉伦网站| 99国产精品无码| 国产精品偷伦视频免费观看了| 91亚洲国产成人久久精品| 日韩欧美一区二区三区中文精品 | 中文精品一卡2卡3卡4卡| 久久综合精品国产一区二区三区 | 精品无码一区二区三区亚洲桃色| 亚洲国产精品成| 92精品国产自产在线观看| 日本精品久久久久久久久免费| 国产精品内射后入合集| 欧美ppypp精品一区二区| 亚洲综合精品香蕉久久网| 麻豆精品成人免费国产片| 合区精品中文字幕| 精品国产污污免费网站| 亚洲精品成人网久久久久久| 日韩精品人妻系列无码专区| 国产精品女同一区二区久久| 精品人妻人人做人人爽| 日韩精品一二三区| 精品麻豆丝袜高跟鞋AV| 国产精品人成在线观看| 99久久99久久久精品齐齐| 国产精品视频网| 亚洲AV无码国产精品麻豆天美| 91精品国产自产在线观看| 久久婷婷国产综合精品| 免费看一级毛片在线观看精品视频| 精品无码国产一区二区三区51安| 日韩精品一区二区三区四区|