PHP 認識PDO資料庫抽象層

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   使用   ar   strong   

PDO全稱是PHP Data Object(PHP資料對象),是PHP串連資料庫中的一個擴充,目前得到普遍使用。PDO主要解決的問題是為不同的資料庫提供一個統一的資料提供者和操作層。為實現系統在跨資料庫平台的開發及遷移等問題上提供了較好的解決方案。PDO 對象的擷取
在PDO中,要建立與資料庫的串連需要執行個體化PDO的建構函式。PDO建構函式文法如下:
PDO::__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )
通過PDO建構函式來串連資料庫:

 1 <?php 2 $dbms = ‘mysql‘; 3 $dbName = ‘dormitory‘; 4 $host = ‘localhost‘; 5 $user = ‘root‘; 6 $pwd = ‘‘; 7 $dsn = "$dbms:host=$host;dbname=$dbName"; 8 try { 9     $pdo = new PDO($dsn, $user, $pwd);10     echo ‘串連成功!‘;11 } catch (Exception $e) {12     echo $e->getMessage() . "<br>";13 }14 ?>

3種方法執行sql語句
執行sql語句的方法有:exec(),query(),prepare()+execute()。
1、exec()方法用於執行input,delete,update語句,傳回值為受影響的行數;
2、query()方法用於執行select語句,傳回值為一個二位元組;
3、預先處理語句prepare()+execute(),可以用於執行input,delete,update,select語句,
可以把預先處理語句看成想要啟動並執行SQL的一種編譯過的模板,他可以使用變數參數進行定製,做到查詢時只需解析一次就可以執行多次;
如果應用程式只使用預先處理語句,可以確保不會發生SQL注入。
PDO::prepare()傳回值為一個PDOStatement對象,對象的內容為prepare()方法裡面的參數;
PDO::execute(),檢查sql是否可執行,傳回值為一個boolean類型。
從預先處理語句的傳回值也可以看出,他並沒有真正的執行sql語句,而是檢查sql的正確性,準備好執行的狀態,等到需要用到結果集的時候再執行。

 1 <?php 2             include_once ‘./pdo_db_conn.php‘; 3             try { 4                 $query = "select * from building"; 5 //                $result = $pdo->query($query);//結果為一個二維數組 6                 $result = $pdo->prepare($query); 7                 var_dump($result); 8                 $flag = $result->execute(); 9                 var_dump($flag);10             } catch (Exception $e) {11                 echo $e->getMessage();12             }13             ?>

傳回值:

object(PDOStatement)[2]
  public ‘queryString‘ => string ‘select * from building‘ (length=22)

boolean true

3種方法擷取結果集
擷取結果集的方法有fetch(),fetchAll(),fetchColumn();
fetch()方法擷取結果集中的下一行,是一個數組;
fetchAll()方法擷取結果集中的所有行,是一個數組;
fetchColumn()方法擷取結果集中下一行指定的列的值。
三個方法的調用物件類型為PDOStatement物件類型,一般是在預先處理語句之後執行

3種方法捕獲sql語句中的錯誤的方式
當執行sql語句出現錯誤是,可以根據設定的錯誤提示方式,來決定顯示錯誤的方法。
錯誤提示方式有:
1、PDO::ERRMODE_SILENT
預設,出現錯誤時程式繼續執行,無錯誤提示。
2、PDO::ERRMODE_WARNING
出現錯誤時會繼續執行,錯誤的部分會提示警告資訊。
3、PDO::ERRMODE_EXCEPTION
出現錯誤時不會繼續執行,錯誤的部分會提示異常資訊。

2種方法擷取程式錯誤資訊
當執行sql語句出現錯誤是(訪問資料庫部分,對結果集的遍曆錯誤不會提示),可以通過errorCode(),errorInfo()兩個方法在後台輸出錯誤資訊,當sql語句是通過先行編譯執行的,這兩個方法不適用。當在程式中調用errorCode()方法後,傳回值為00000(5個0)時,表示程式沒有錯誤,但返回其他5個字元時,表示程式是有錯誤的,這時可以通過調用errorInfo()方法來查看具體錯誤的資訊。

PHP 認識PDO資料庫抽象層

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.