2011年7月18日月曜日

Pear::DBからMDB2への移行で修正した箇所

Pear::DBからMDB2への移行をしたのですが、けっこう面倒でした。
覚えている範囲でメモしておきます。

■DBへの接続

変更前
$db = DB::connect(DSN);

変更後
$db = MDB2::connect(DSN);
$db->loadModule('Extended');



■FETCHMODE定数の変更

変更前
$rs->fetchRow(DB_FETCHMODE_ASSOC)

変更後
$rs->fetchRow(MDB2_FETCHMODE_ASSOC)


■limit句

変更前
$db->limitQuery($sql, 0, 10);

変更後
$db->setLimit(10, 0);
$db->query($sql);



■quote関数

変更前
$db->quoteSmart($v["value"])

変更後
$db->quote($v["value"])


■その他

※MDB2ではexecuteMultipleで連想配列が使えないので注意。DBから値を取得して使う場合などは、MDB2_FETCHMODE_ASSOCじゃなくMDB2_FETCHMODE_ORDEREDを使うと良い。

※quoteSmartではnullを自動的に空白文字列化してくれていたが、quoteではその機能がないので、nullが入る可能性のあるカラムは予めnull化にしておく。

※上記修正の該当箇所はこんなふうにfindで調べました。

find . -name \*.php -print xargs grep limitQuery

0 件のコメント:

コメントを投稿