さようなら、DB_DataObject。こんにちはPDO | 今日もWEB更新してたら

さようなら、DB_DataObject。こんにちはPDO


PDO に切り替えた。



PDOの使い方は、java.sqlのパッケージによく似ている。


PDOはプリペアードステートメントを前提に高速処理をするようだ。今のところ使わないけど。



PODの使い方。<br />




postgreSQLでネイティブドライバと比較しながら観てみる


ネイティブドライバ




<?php

$sql 
"SELECT * FROM users;";

$dsn "hoge"

$con pg_connect$dsn );

$res pg_query$con$sql );

while( 
$obj pg_fetch_object$res ) ){

    
$array[] = $obj;

}

pg_free_result$res );

pg_close$con );



?>










この結果は




<?php

array[0] = object(stdClass) {

    
"name":public  => "foo";

    
"tel" :public  => "00xx11xx";

}

array[
1] = object(stdClass) {

     
"name":public  => "foo";

     
"tel" :public  => "00xx11xx";

}

?>






こんな感じ。pg_fetch_objectすれば、JOINの結果もObjectで返ってくる。<br />



PDOで書くと。







<?php

$sql 
"SELECT * FROM users;";

$dsn "hoge"

$pdo = new PDO$dsn );

$stmt $pdo->query$sql );

$favorites = array();

while( ( 
$obj $stmt->fetchObject() ) ){

    
$array[] = $obj;

}



?>






個人的には、arrayで取り出すより、Objectにする方が好き。Objectだと参照渡しだし。クラス指定できるし。





DB_DATAOBJECTの利点はCreateTableのクラス自動生成と自動生成とJoinのSQL自動生成なんだけど。。複雑じゃなかったら自作した方が早いね。

pdoStatement::fetchObject使えばベースになるOBJECTはすぐ取り出せるわけだし。