2008-11-10 10 views
3

Им с помощью Smarty и mysql_real_escape_string() для пользовательского ввода, и когда я вставить код с ' или " и поиск в PHPMyAdmin он показывает без обратной косой черты.Не должно ли mysql_real_escape_string() оставить слэши в базе данных?

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

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

ответ

12

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

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

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

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

сохранит значение «любой„это“есть» в стол.

+0

Ох, я получил его. Благодарю вас. – Chris 2008-11-10 11:15:30