站長資訊網
        最全最豐富的資訊網站

        有關PHP中PDO連接數據庫的詳細教程與實際操作演示

        PDO—數據庫抽象層

        簡介:PDO擴展為PHP訪問數據庫定義了一個輕量級的、一致性的接口,PDO解決了數據庫連接不統一的問題。

        一、 PDO簡介

        本章主要介紹PDO的安裝與配置,以及使用PDO連接數據庫的方法。

        1-1PDO簡介

        PDO是PHP Data Object(PHP數據對象)的簡稱,它是與PHP5.1版本一起發布的,目前支持的數據庫包括Firebird、FreeTDS、Interbase、MySQL、MS SQL Server、ODBC、Oracle、Postgre SQL、SQLite和Sybase。當操作不同數據庫時,只需要修改PDO中的DSN(數據庫源) ,即可使用PDO的統一接口進行操作。

        PDO特性:

        編碼一致性:PDO提供可用于各種數據庫的單一接口

        靈活性:PDO在運行時必須加載數據庫驅動程序,所以不需要每次在使用數據庫時,重新配置和重新編譯PHP

        高性能:PDO是用C語言編寫的編譯為PHP,與用php編寫的其他方案相比,雖然其他功能相同,但提供了更高的性能

        面向對象特性:PDO是利用的PHP5面向對象的特性,可以獲得更高效的數據庫通信。

        注意:PDO擴展只是一個抽象的接口層,利用PDO擴展本身,并不能實現任何數據庫的操作,必須使用一個特性的形式把各自的特色表現出來才行。

        有關PHP中PDO連接數據庫的詳細教程與實際操作演示

        1-2 PDO的配置與啟用

        有關PHP中PDO連接數據庫的詳細教程與實際操作演示

        1-3 PDO連接數據庫

        有關PHP中PDO連接數據庫的詳細教程與實際操作演示

        1.通過參數形式連接數據庫(重點掌握此種辦法)

        //通過參數形式連接數據庫 try{  $dsn='mysql:host=localhost;dbname=school';  $username='root';  $password='root';  $pdo=new PDO($dsn,$username,$password);  var_dump($pdo); }catch (PDOException $e){     echo $e->getMessage(); };  需要注意:dsn是你的數據源  輸出結果:object(PDO)#1 (0) { }

        二、 PDO對象的使用

        主要介紹PDO對象方法的使用。

        2-1 [PDO] exec()方法執行建表操作 有關PHP中PDO連接數據庫的詳細教程與實際操作演示

        有關PHP中PDO連接數據庫的詳細教程與實際操作演示

        <?php try{     //驅動器的名稱 mysql     $pdo=new PDO('mysql:host=localhost;dbname=school','root','root');     //exec():執行一條sql語句并返回其受影響的行數;如果沒有受影響的記錄,它返回0     //exec對于select沒有作用     //PHP是一個Web編程語言,在編程過程中難免會遇到用echo來輸出大段的html和javascript腳本的情況,     //如果用傳統的輸出方法 ——按字符串輸出的話,     //肯定要有大量的轉義符來對字符串中的引號等特殊字符進行轉義,以免出現語法錯誤。     //如果是一兩處還可以容忍,但是要是一個完整的 html文本或者是一個200行的js我想是誰都會崩潰的。     //這就是PHP為什么要引入一個定界符的原因——至少一大部分原因是這樣的。      /*    1.PHP定界符的作用就是按照原樣,包括換行格式什么的,輸出在其內部的東西;     2.在PHP定界符中的任何特殊字符都不需要轉義;     3.PHP定界符中的PHP變量會被正常的用其值來替換。         PHP中的定界符格式是這樣的:     <<<Eof     ……     Eof;*/     $sql=<<<EOF     create table if not exists t_teacher(    id int UNSIGNED auto_increment primary key,    teaname varchar(20) not null UNIQUE,    pwd char(32) not null,    email varchar(30) not null ); EOF;    $res= $pdo->exec($sql);     var_dump($res); }catch (PDOException $e){     echo $e->getMessage(); };

        輸出結果:int(0);

        2-2 [PDO] exec()方法執行插入記錄操作

        續上面:插入一條或多條記錄

        <?php try{     //驅動器的名稱 mysql     $pdo=new PDO('mysql:host=localhost;dbname=school','root','root');     $sql='insert into t_teacher values(default,"king5","'.md5('king').'","waly@qq.com");';     $res=$pdo->exec($sql);     echo $res; }catch (PDOException $e){     echo $e->getMessage(); };
        <?php try{     //驅動器的名稱 mysql     $pdo=new PDO('mysql:host=localhost;dbname=school','root','root');     //$sql='insert into t_teacher values(default,"king6","'.md5('king').'","waly@qq.com");';    $sql=<<<EOF       insert into t_teacher values       (default,"king7","'.md5('king').'","waly@qq.com"),       (default,"king8","'.md5('king').'","waly@qq.com"),       (default,"king9","'.md5('king').'","waly@qq.com") EOF;      $res=$pdo->exec($sql);     echo '受影響的記錄的條數為:'. $res."<br/>";     //$pdo->lastInsertId():得到新插入記錄的ID號     //echo '最后插入的ID號為:'.$pdo->lastInsertId(); }catch (PDOException $e){     echo $e->getMessage(); };

        2-3 [PDO] exec()方法執行其他SQL操作

        有關PHP中PDO連接數據庫的詳細教程與實際操作演示

        本身是king,修改為king,會是0條記錄被影響.

        lastInsertId() 只能對插入有影響。

        exec()對查詢無作用

        2-4 [PDO] errorCode()和errorInfo()方法查看錯誤信息

        <?php try{     //驅動器的名稱 mysql     $pdo=new PDO('mysql:host=localhost;dbname=school','root','root');    //錯誤的表名     $sql='insert into t_teacher1 values(default,"king6","'.md5('king').'","waly@qq.com");';     $res=$pdo->exec($sql);     if($res===false){         //$pdo->errorCode(); SQLSTATE的值         echo $pdo->errorCode();         echo '<hr/>';       //$pdo->errorInfo():返回的錯誤信息的數組,數組中包含3個單元      //0=>SQLSTATE(錯誤編號),1=>CODE(錯誤碼),2=>INFO(錯誤信息)         $errInfo=$pdo->errorInfo();         print_r($errInfo);     } }catch (PDOException $e){     echo $e->getMessage(); };

        2-5 [PDO] query()方法執行查詢語句

        <?php try{     //驅動器的名稱 mysql     $pdo=new PDO('mysql:host=localhost;dbname=school','root','root');     //查詢一條記錄     //$sql='select * from t_teacher where id=5';     //查詢多條記錄     $sql='select * from t_teacher';     //$pdo->query($sql):執行sql語句,返回PDOStatement對象:需要遍歷這個對象,將里面的內容取出來     $stmt=$pdo->query($sql);     var_dump($stmt); //只能看出這個語句返回的是一個對象     echo '<hr/>';     foreach ($stmt as $row){         print_r($row);         echo '<hr/>';         echo '編號:'.$row['id'].'<br/>';         echo '用戶名:'.$row['teaname'].'<br/>';         echo '郵箱:'.$row['email'].'<br/>';         echo '<hr/>';     } }catch (PDOException $e){     echo $e->getMessage(); };
        Query()用于插入數據  <?php try{     //驅動器的名稱 mysql     $pdo=new PDO('mysql:host=localhost;dbname=school','root','root');     //插入一條記錄     $sql='insert into t_teacher values(default,"king12","'.md5('king').'","waly@qq.com");';     //$pdo->query($sql):執行sql語句,返回PDOStatement對象:需要遍歷這個對象,將里面的內容取出來     $stmt=$pdo->query($sql);     var_dump($stmt); //只能看出這個語句返回的是一個對象 }catch (PDOException $e){     echo $e->getMessage(); };

        注意:

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲精品无码久久久久sm| 国产亚洲精品国产| 2022国内精品免费福利视频| 欧美日韩精品在线观看| 亚洲国产精品久久久久网站| 久久精品国产亚洲av影院| 久久久精品波多野结衣| 91精品国产福利在线观看麻豆| 精品熟女少妇a∨免费久久| 美女岳肉太深了使劲国产精品亚洲专一区二区三区 | 中文精品久久久久人妻不卡 | 亚洲精品自产拍在线观看动漫| 久久Av无码精品人妻系列| 下载天堂国产AV成人无码精品网站| 999国产精品视频| 2023国产精品自拍| 久久久精品午夜免费不卡| 99久久精品午夜一区二区| 久久99精品久久久久久动态图| 中文字幕精品视频在线| 伊人久久精品影院| 亚洲精品岛国片在线观看| 欧美日韩国产成人高清视频,欧美日韩在线精品一 | 99亚洲精品视频| 四虎国产精品免费观看| 久久99热狠狠色精品一区| 久久国产精品一区二区| 国产精品久久久久久福利漫画| 99精品热这里只有精品| 欧美日韩人妻精品一区二区在线 | 亚洲福利精品电影在线观看| 欧美日韩专区麻豆精品在线 | 四虎成人精品| 污污网站国产精品白丝袜| 无码精品人妻一区二区三区免费| 精品欧美激情在线看| 久久精品国产99久久丝袜 | 黑人巨大精品欧美一区二区| 国产精品爱搞视频网站 | 国产精品毛片无遮挡| 国产精品福利一区二区|