Разве mysql_real_escape_string () не должен оставлять косые черты в базе данных? - PullRequest
3 голосов
/ 10 ноября 2008

Я использую smarty и mysql_real_escape_string() для ввода пользователя, и когда я вставляю некоторый код с ' или ", и ищу в phpmyadmin это показывает без обратной косой черты.

Когда я получаю запись из БД, у меня также нет обратной косой черты. Но когда я просто передаю экранированную строку, не вставляя в БД это обратный слеш.

Если не добавить слеш, вставить с ними, а затем я бы раздеть их, когда я бы вывел? Или я что-то упустил?

1 Ответ

12 голосов
/ 10 ноября 2008

Вам не хватает этого - экранирование с обратной косой чертой должно гарантировать, что запросы не искажены, например, что-то вроде этого обязательно сломается и, возможно, рискует SQL-инъекциями:

insert into table values ('whatever 'this' is')

и ничего не будет сохранено в таблице, тогда как это:

insert into table values ('whatever \'this\' is')

сохранит значение «что бы это ни было» в таблице.

...