mysqli: передача константы в bind_param - PullRequest
2 голосов
/ 09 апреля 2011

Как я могу передать константу bind_param в подготовленных mysqli утверждениях. Следующее отлично работает, передавая переменную:

 $stmt->bind_param("i", $id);

Но если я попытаюсь передать константу, это не сработает. Например:

$stmt->bind_param("i", ID);

Выдает следующую ошибку:

Fatal error: Cannot pass parameter 2 by reference in...

Спасибо

1 Ответ

2 голосов
/ 20 декабря 2014

В MySQLi аргументы после строк типа передаются по ссылке, а не по значению.Единственное, что вы можете передать по ссылке - это переменная.Причина использования переменных заключается в том, что вы можете назначать переменные, выполнять оператор, назначать переменные снова, выполнять оператор снова и т. Д. Так попробуйте это:

$id = ID;
$stmt->bind_param("i", $id);

Или попробуйте использовать драйвер MySQL PDO вместоMySQLi.PDO позволяет вам связать значение вместо переменной с параметром запроса.Это полезно, если вы планируете выполнить подготовленный оператор только один раз.

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