SQLite - ограничение? Ошибка? Подготовленные заявления с оговоркой HAVING - PullRequest
4 голосов
/ 22 июля 2009

У меня есть запрос, который выполняется 1000 раз, который я пытаюсь оптимизировать, используя подготовленные операторы:

$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);

Я получаю желаемый набор результатов.

Однако, когда я преобразую его в готовое утверждение

$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>=?");

и запустите:

$stmt->execute(array($t, 100));

похоже, что он не может отфильтровать условие, указанное в предложении HAVING (поэтому я получаю результаты, если доля меньше 100).

Это ошибка / ограничение SQLite или я что-то не так делаю?

Все остальные мои запросы работают нормально при преобразовании в подготовленные операторы ...

1 Ответ

1 голос
/ 30 июля 2009

Try: $ stmt-> bindParam (2, $ shares, PDO :: PARAM_INT); $ Stmt-> Execute ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...