MySQLi несколько условий, что не так - PullRequest
1 голос
/ 21 января 2012

Я пытаюсь сделать подготовленные заявления следующим образом:

    $stmt = $mysqli->prepare("SELECT COUNT(*) FROM table WHERE from = '?' && to = '?' LIMIT 1");
    $stmt->bind_param('ii', $fromId, $toId);
    $stmt->execute();
    $stmt->bind_result($db_offeredAlready);
    $stmt->fetch();
    $stmt->close();

Я получаю следующую ошибку:

 Fatal error: Call to a member function bind_param() on a non-object in /path/to/script.php on line 97

Добавление `и 'дает мне

    $stmt = $mysqli->prepare("SELECT COUNT(*) FROM `table` WHERE `from` = '?' && `to` = '?' LIMIT 1");

и следующие

 Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of variables doesn't match number of parameters in prepared statement in /path/to/script.php on line 97

Очевидно, что число переменных BIND соответствует числу? Метки. Я пробовал все комбинации добавления и удаления `и 'безрезультатно. Что не так с этим подготовленным заявлением? Я могу сделать SELECT с одним условием, но он жалуется несколькими.

1 Ответ

4 голосов
/ 22 января 2012

Заполнители (?) не нужно указывать в кавычках.

$stmt = $mysqli->prepare("SELECT COUNT(*) FROM `table` WHERE `from` = ? && `to` = ? LIMIT 1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...