PDO的使用

PDO是什麼?

PDO是別人寫的「數據庫操做工具類」!——它能夠代替咱們本身寫的MySQLDB.class.php.php

使用它,相似這樣:mysql

$pdo  = new PDO(鏈接信息);sql

$sql = 「select * from .....」;數據庫

$result = $pdo->query($sql); //返回一個「pdo結果集」;函數

$sql = 「delete / update / insert  ........ 」;工具

$result2 = $pdo->exec($sql); //返回一個真假值;ui

 

手冊能夠找到:spa

函數參考》數據庫擴展》數據庫抽象層》PDOcode

 

具體應用的時候,其實,其中有這樣的一個關係:對象

 

使用pdo鏈接mysql數據庫

例子:

<?php
$conn = new PDO('mysql: host=localhost;dbname=php39;port=3306;charset=utf8','userName','password');
?>

 

   例子:

<?php
function getFruit($conn) {
    $sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
    foreach ($conn->query($sql) as $row) {
        print $row['name'] . "\t";
        print $row['color'] . "\t";
        print $row['calories'] . "\n";
    }
}
?>

錯誤預處理方式: 

 

異常模式

 

能夠簡單理解爲:適應面向對象語法的處理錯誤的一種語法結構。以下所示:

 

 

 

try{

 

在這裏,能夠執行「可能出錯」的語句(多條也能夠);

 

一旦發生錯誤,就會終止當前範圍的後續程序執行,

 

而當即跳轉到catch部分——處理錯誤!

 

}

 

catch( Exception  $e ){

 

//一旦發生錯誤,就會進入這裏,此時,並會生成一個「錯誤對象」;

 

//該錯誤對象,就是系統類Exception的一個實例:它包含了錯誤信息。

 

}

 

 

 

pdo要使用異常模式,就得專門設置(由於其默認是靜默模式):

 

 

 

Example #1 建立 PDO 實例並設置錯誤模式

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

$result = $pdo->query(「返回結果集的sql語句」); //對比最原始的函數: mysql_query(「select ..... 「)

結果:

成功:就是一個pdo結果集對象;

失敗:false;

 

$result = $pdo->exec(「增刪改的sql語句」);

結果: true(表示成功),false(表示失敗);

 

$pdo = null; //銷燬該對象;

 

其餘操做:

  • $pdo->lastInsertId();
    • 獲取最後添加的id值;
  • $pdo->beginTransaction();:
    • 開啓一個事務
  • $pdo->commit()
    • 提交一個事務
  • $pdo->rollBack();
    • 回滾一個事務;
  • $pdo->inTransaction();
    • 判斷當前行是否在事務中,返回true/false
  • $pdo->setAttribute(屬性名,屬性值);
    • 設置pdo對象的屬性值;
    • 舉例:$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)

 

$pdo->begintrsaction();

$pdo->exec(「insert ....」);

$pdo->exec(「delete ....」);

$v1 =  $pdo->intransaction(); //結果是true

 

相關文章
相關標籤/搜索