Zend_DbのPDO_SQLITEで遊ぼうと思ったら「ドライバねぇ」で門前払い。
variant pdosqlite {
depends_lib-append port:sqlite3 \
port:sqlite2
configure.args-append --with-pdo-sqlite
}
とりあえず、例のごとく"port edit"で上記variantを追加して再インストール。ドライバを後から追加する事って出来るんだっけ?.soのはCLIから使えないんだよね(dl使えばいいのかな)?
とりあえず、PDO_SQLITEは使えるようになった。けど、プレースホルダで整数値をクォーテーションしない方法が分からない。
CREATE TABLE test ( id, value ); INSERT INTO test VALUES (1, "hoge");
<?php require_once "Zend/Db.php"; $params = array( "dbname" => "test.db", ); $db = Zend_Db::factory("PDO_SQLITE", $params); $select = $db->select(); $select->from("test", "value")->where("id = 1"); echo "SQL: \n" . $select->__toString() . "\n"; print_r($db->fetchAll($select)); ?>
テーブル作る際のSQL間違えてる?『$select->where("id=?", 1);』ってやるとでき上がるSQLでは整数がクォートされて、結果が空になる。下はプレースホルダ使った場合の結果。
SQL:
SELECT
value
FROM test
WHERE
id = '1'
Array
(
)
まあ、いいか。

