4
を持つプリペアドステートメント私はプリペアドステートメントを使用して最適化しようとしている時代の1000年代に実行されるクエリがあります:私は正常にクエリを実行するとSQLite - 制限はありますか?バグ?句
$query = "SELECT day, ticker, SUM(score*mod) as shares FROM indicators, modifiers WHERE indicators.dex=modifiers.dex AND ticker='$t' GROUP BY day, ticker HAVING shares>=$s";
を:
$transactions = $dbm->query($query);
I目的の結果セットを取得します。私は(
$stmt->execute(array($t, 100));
HAVING節で述べた条件をフィルタリングすることができないようです。私は、準備されたステートメント
$stmt = $db->prepare("SELECT day, ticker, SUM(score*mod) as shares FROM indicators, modifiers WHERE indicators.dex=modifiers.dex AND ticker=? GROUP BY day, ticker HAVING shares>=?");
と実行に変換しかし
、株式が100未満の場合は結果を得る)。
これはSQLiteのバグ/制限ですか、何か間違っていますか?
プリペアドステートメントに変換すると、すべての私の他のクエリが正常に動作
...
私はまた、用意されたステートメントへの共有数をハードコーディングしてみましたが、うまくいきました。これは、変数がある場合にのみ発生します。 –
あなたはPDO_SQLITEを使用していますか? – hobodave
はい、私はsqlite3のpdo sqlite拡張を使用しています。 –