У меня есть функция, в которой пользователи могут искать запись в текстовом поле. Ввод помещается в следующий SQL-запрос:
$db->query("Select * from users where name = '".$db->real_escape_string($posted_var)."' limit 1");
$ db – объект соединения mysqli
Работает идеально, пока у меня нет «имени». Тогда пользователю необходимо вручную избежать цитаты, чтобы получить ее, чтобы она соответствовала …….. Должна ли функция real_escape_string () делать это для меня?
У меня есть тестовая запись, где name – «test \» string »в базе данных.
$posted_var = "test'string"; // no match $posted_var = "test\'string"; // match
У кого-нибудь есть идея, почему real_escape_string () не будет добавлять обратную косую черту?
Сервер MySQL и эта конкретная таблица являются utf8_unicode_ci. Я не знаю, что еще может вызвать это ….
Спасибо за прочтение!