PDO — выход из одинарных кавычек

Я использую следующий код для поиска, если элемент уже находится в моей базе данных:

$query = $pdo->prepare("select * from mydatabase where title = :title");
$query->execute(['title' => $myvariable]);
$results = $query->fetchAll(PDO::FETCH_ASSOC);

Этот код работает за исключением случаев, когда $ myvariable содержит одинарную кавычку. Я думал, что одинарные кавычки были автоматически проанализированы с переменными, но, видимо, это не так, или я что-то упустил?

Примеры для $myvariable:

Отряд самоубийц => работает

Гарри Поттер и Философский камень => не работает

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

Неустранимая ошибка: Uncaught PDOException: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL имеется ошибка; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с ‘s Stone

Фильма нет в базе данных, а исходная строка из файла json. Я проверил интервал (отделка) и там нет места.

Спасибо

-4

Решение

Для побега нужно использовать bindParam http://php.net/manual/en/pdostatement.bindparam.php

$query = $pdo->prepare("select * from mydatabase where title = :title");
$query->bindParam(':title', $myvariable, PDO::PARAM_STR);
$query->execute();
$results = $query->fetchAll(PDO::FETCH_ASSOC);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]