【php】PDO

來源:互聯網
上載者:User

標籤:inf   roo   指標   執行個體   row   root   cti   抽象類別   開啟   

一、PDO的定義

  1.pdo(php data object)是一個資料庫的抽象層

二、PDO的特點

  1.跨資料庫

  2.支援預先處理

  3.支援交易處理

三、PDO的使用

  1.基本使用

    (1)執行個體化pdo

      ①資料庫類型必須小寫

      ②格式:$pdo=new PDO(‘mysql(可替換):host=localhost;dbname=資料庫名;charset=utf8‘,‘root‘,‘密碼‘);

    (2)發送sql指令

      $pdo->query(sql查詢語句)  返回的是對象

      $pdo->exec(sql增、刪、改語句)  返回的是手影響行數

    (3)$pdo->errorInfo()  錯誤資訊

      $pdo->lastInsertId()  

  2.處理返回對象的方法

    (1)fetch()返回結果集的下一行,結果指標下移到頭返回false

    (2)fetchAll(PDO::FETCH_NUM)返回全部(索引式)    PDO::FETCH_ASSOC關聯式      PDO::FETCH_BOTH索引式和關聯式

    (3)foreach遍曆

  3.預先處理

    (1)執行個體化對象

    (2)發送預先處理指令

      $stmt=$pdo->prepare(sql語句,變數部分使用預留位置);

      ?  :name  預留位置

    (3)綁定參數

      ① ?作為預留位置  bindValue(序號,值);

      ② :name作為預留位置  bindValue(預留位置,變數);

      ③ :name作為預留位置  $arr=array(‘預留位置‘=>‘值‘);

    (4)執行

      $stmt->execute($arr);

    (5)處理結果

      ① 結果集foreach fetch fetchAll

      ② 受影響行數 rowCount();

 1 //使用資料庫抽象層進行預先處理操作 2  3 //1. 執行個體化 4 $pdo = new PDO(‘mysql:host=localhost;dbname=lamp183;charset=utf8‘,‘root‘,‘‘); 5  6 //2. 發送預先處理指令 7  8 //增加 9 $stmt = $pdo->prepare(‘insert into user (username,password) values (:name,:pass)‘);10 11 //3. 給預先處理指令綁定相應的值12 //第一種綁定方式13 // $stmt->bindValue(1,‘qiaojing‘);14 // $stmt->bindValue(2,‘qiaojing‘);15 16 //第二種綁定方式17 // $uname = ‘鴻澤‘;18 // $upass = ‘鴻澤‘;19 // $stmt->bindParam(‘:name‘,$uname);20 // $stmt->bindParam(‘:pass‘,$upass);21 22 //第三種綁定方式23 $arr = array(24             ‘:name‘=>‘召勇‘,25             ‘:pass‘=>‘召勇‘26             );27 28 //4. 執行29 $stmt->execute($arr);30 31 //5. 處理結果32 if($stmt->rowCount()>0){33     $id = $pdo->lastInsertId();34     echo ‘添加成功!ID號為:‘.$id;35 }else{36     echo ‘添加失敗!‘;37 }38 // echo $stmt->rowCount();

  4.交易處理

    (1)表的類型必須是innodb

      show create table user;

      alter table user engine=innodb;

    (2)$pdo->beginTransAction();  開啟

      $pdo->rollBack();  復原

        $pdo->commit();  事務結束

 1 //使用PDO抽象類別,實現交易處理 2 //1.執行個體化 3 $pdo = new PDO(‘mysql:host=localhost;dbname=lamp183;charset=utf8;‘,‘root‘,‘‘); 4  5 //2.發送語句 6     //(1)開啟交易處理 7     $pdo->beginTransaction(); 8  9     //(2)修改我自己的資料10     $num1 = $pdo->exec(‘update user set acount = acount - 100000 where id = 1‘);11     12     //判斷我的修改語句是否有問題13     if(!$num1){14         $pdo->rollBack();    //如果事務出現問題,則滾回去15         die(‘交易失敗,請查詢後再轉錢!‘);16     }17 18     //(3)修改別人的資料19     $num2 = $pdo->exec(‘update user set acount = acount + 100000 where id = 2‘);20     21     //判斷別人的修改語句是否有問題22     if(!$num2){23         $pdo->rollBack();24         die(‘交易失敗!轉錢的過程當中遇到了問題!‘);25     }26 27     //3.處理結果28     if($num1 && $num2){29         echo ‘恭喜,交易成功!‘;30     }31 32     //(4)結束33     $pdo->commit();

【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.