У меня проблема в php-скрипте, когда я использую PDO для доступа к моей базе данных.Кажется, я не могу заставить PDO избежать моей строки, когда я использую prepare()
или execute()
в PDO.Я просмотрел все и не нашел ответа на эту проблему, потому что везде, где я смотрю, написано, что PDO автоматически экранирует строки.Вот мой код:
$statement = $db->prepare("INSERT INTO Table (ID, Column1, Column2) VALUES (NULL, '$var1', '$var2')");
$query->execute();
Допустим, $var1 = "abc'def"
и $var2 = "123"
Проблема в том, что я получаю сообщение об ошибке, потому что кавычка не была экранирована.
Ошибка: SQLSTATE[42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'def', '123') 'в строке 1
Я также пытался использовать метод query()
, нота же prpblem с цитатами.Я действительно не понимаю, и это расстраивает.Спасибо за любую помощь.