PHP использовать '' в запросе без преобразования значения в указатель - PullRequest
0 голосов
/ 06 ноября 2018

Мне нужно выполнить SQL-запрос, где мне нужно использовать апостроф, потому что я ищу адрес электронной почты. Когда я сейчас набираю '' в запросе, они становятся указателем переменной, но они должны просто сообщить mysql, что это строка.

Как мне сказать программе использовать их по-другому? Я уже пробовал pdo->quote.

$statement = $pdo->prepare("SELECT user_id FROM tbl_server WHERE user_id = (SELECT user_id from tbl_user where Email = ':email') "); // here i need the normal apostrophe
$result = $statement->execute(array('email' => $email));
$user = $statement->fetch();

1 Ответ

0 голосов
/ 06 ноября 2018

Вы не должны указывать :email в запросе; драйвер базы данных определит, как обрабатывать параметр, поскольку он знает переданный тип и тип столбца в базе данных. Но вам нужно добавить : к email при выполнении параметризованного запроса.

$statement = $pdo->prepare("SELECT user_id FROM tbl_server WHERE user_id = (SELECT user_id from tbl_user where Email = :email) "); // here i need the normal apostrophe
$result = $statement->execute(array(':email' => $email));
$user = $statement->fetch();

Кстати, вы должны проверить, является ли $result true или false, также ваш запрос может доставить пустой набор результатов. Поэтому вы должны проверить, будет ли $user === false (т.е. пользователь не найден) после извлечения.

...