001 - PDO 用法詳細解析

來源:互聯網
上載者:User
本篇文章介紹的內容是PDO用法詳細解析,現在分享給大家。有需要的朋友可以參考一下

《PDO》41、作用 :能夠解決使用者在需要使用不同的資料庫的時候進行來回的切換,PDO能夠自動的進行資料庫的切換。42、使用PDO    a)Php.ini檔案找開啟PDO擴充43、使用PDO操作資料庫基本步驟    a)串連認證        i.$pdo = new PDO(“mysql:host=localhost;port=3306;dbname=project”,”root”,”root”);            ii.dbname 是進入的資料庫    b)組織SQL語句        i.$sql = “show tables”;    c)發送SQL語句,接收執行結果        i.$stmt = $pdo->query( $sql );    d)從結果集中擷取資料        i.$stmt->fetch();44、PDO常用函數    a)stdClass標準類 空類    b)PDO:        i.exec( $sql );執行SQL語句,返回受影響的行數(用於 增刪改)        ii.$stmt = query( $sql );執行SQL語句,返回PDOStatement對象(用於 查)    c)PDOStatement(結果集)        i.$stmt->fetch( );返回一個關聯陣列+索引數組的集合            1.參1PDO::FETCH_ASSOC只返回關聯陣列            2.參2PDO::FETCH_NUM只返回索引數組        ii.$stmt->fetchAll()擷取結果集所有內容(參數同fetch())        iii.返回一個對象Object            1.class Persion{}            2.$stmt->fetchObject( Persion)        iv.bindColumn 和 fetch綁定一列到一個變數            1.$stmt->bindColumn(‘s_name’,$name);            2.$stmt->bindColumn( 3 ,$number);    //注意:索引從1開始            3.$stmt->fetch( );            4.echo $name,$number    d)PDO預先處理        i.:s_name  這些 可以全用 ? 號代替(綁定資料時 就用索引值);        ii.使用數組指定預先處理變數            1.步驟:                a)$sql = “insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)”;//sql                b)$stmt = $pdo->prepare( $sql );//發送預先處理                c)給預先處理綁定資料                    i.$arr = array(                    ii.   ‘:s_name’=>’房祖名’,                    iii.   ‘:s_num’=>’itcast0001’,                    iv.   ‘:s_gender’=>’男’,                    v.   ‘:s_age’=>’28’,                    vi.   ‘:c_id’=>’2’,                    vii.)                d)$stmt->execute( $arr );//執行預先處理        iii.通過綁定變數的形式            1.步驟                a)$sql = “insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)”;//sql                b)$stmt = $pdo->prepare( $sql );//發送預先處理                c)給預先處理綁定資料                    i.$name = “李莫愁”;                    ii.$num= “itcast0002”;                    iii.$gender = “女”;                    iv.$age = “30”;                    v.$c_id = “3”;                    vi.//將變數綁定給預先處理                    vii.$stmt->bindParam(‘:s_name’,$name);                    viii.$stmt->bindParam(‘:s_num’,$num);                    ix.$stmt->bindParam(‘:s_gender’,$gender);                    x.$stmt->bindParam(‘:s_age’,$age);                    xi.$stmt->bindParam(‘:c_id’,$c_id);                d)$stmt->execute(  );//執行預先處理    e)PDO交易處理        i.交易處理就是  增刪改        ii.注意:資料表的儲存引擎必須是 innoDB        iii.交易處理流程            1.$pdo = new PDO(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’);//串連認證            2.$res = $pdo->beginTransaction();//開啟事務            3.交易處理                a)$sql = “updata pro_student set s_age=28 where s_id=20”;                b)$lines = $pdo->exec( $sql );//返回受影響的行數                c)$sql = “select * from pro_student where s_id=20”;                d)$stmt = $pdo->query( $sql );                e)$stmt->fetch(PDO::FETCH_ASSOC);            4.提交事務                a)if( $links ){                b)    $pdo->commit();//更新成功                c)}else{                d)    $pdo->rollBack();//更新失敗   復原資料                e)}    f)PDO 屬性設定        i.設定PDO在處理資料的過程中採用什麼方式去處理        ii.PDO::getAttribute();//擷取屬性        iii.PDO::setAttribute();//設定屬性        iv.樣本:            1.$pdo = new PD(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’);//串連認證    2.$peo->getAttrbute(PDO::ATTR_AUTOCOMMIT);//擷取 自動認可屬性    3.$pdo->setAttrbute(PDO::ATTR_AUTOCOMMIT,0)//設定 關閉自動認可        v.參數記憶:            1.PDO::ATTR_CASE強制列名為指定的大小寫                a)PDO::CASE_LOWER強制小寫b)PDO::CASE_UPPER強制大寫vi...... 更多請參考手冊 ......    g)PDO異常處理i.try{ii.    //設定錯誤處理模式(必須設定才會生效)iii.    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);iv.    //一旦出錯立即進入catch語句v.}catch(PDOException $e){vi.    $e->getTrace();  //擷取完整的錯誤資料vii.    $e->getFile();   //擷取錯誤檔案viii.   $e->getLine();   //擷取錯誤行號ix.    $e->getMessage();   //擷取錯誤原因x.}    h)反射:i.反射就是將其他類的結構給反應出來,從而可以對類的結構進行瞭解便於對類的使用ii.Reflectioniii.reflectionClass::export(要反射的類名)iv.調用reflectionClass的靜態方法v.var_dump( reflectionClass::export(‘PDO’) );vivii.$rc = new ReflectionClass(‘PDO’);  //建立ReflectionClass對象viii.var_dump( $rc->getProperties() );  //擷取全部屬性ix.var_dump( $rc->getMothods() );   //擷取全部方法x.var_dump( $rc->getConstants() );  //擷取全部常量

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.