ORAオラ日記

プログラムの事や時事ネタなど

PEAR DBとPDOの使い方の違いまとめ

2007-08-18 21:28:21 | Weblog
■接続方法

PEAR DB
$dsn = "pgsql://username:userpass@localhost/dbname";

PDO
$dsn = "pgsql:dbname=dbname; user=username; password=userpass; host=localhost;";
※「;」は無くてもいいみたい。

PEAR DB
require_once("DB.php");
$db = DB::connect($dsn);

PDO
$db = new PDO($dsn);


■SQLの実行

$sql = "SELECT * FROM tablename";

PEAR DB
$res = $db->query($sql);

PDO
$res = $db->query($sql);

※クエリーは同じだが、実際にはPDOでは、プリペアドステートメントを利用する。こっちの方が早くなり、SQLインジェクション対策を自動的にしてくれるようです。
$res = $db->prepare($sql);
$res->execute();


■トランザクション

PEAR DB
$db->query("BEGIN");

PDO
$db->beginTransaction();

--------

PEAR DB
$db->query("ROLLBACK");

PDO
$db->rollBack();

-------

PEAR DB
$db->query("COMMIT");

PDO
$db->commit();


■エラーハンドリング

PEAR DB
if (DB::isError($db)) {
die("接続失敗{$db->getMessage()}");
}

PDO
try{

} catch (PDOException $e) {
die("接続失敗{$e->getMessage()}");
}