2012-04-11 2 views
2

Я просто отключил magic_quotes_gpc, и я заметил, что пользовательский ввод в мою базу данных имеет апострофы, как будто ничего не ускользнуло.Это обычное поведение для mysql_real_escape_string?

($_POST['message'])="it's a test"; 
$string = mysql_real_escape_string(htmlentities($_POST['message'])); 

Затем вставить его в базу данных, а база данных показывает: it's a test

Разве это не должно быть it\'s a test, после того, как я применил mysql_real_escape_string? Или это база данных (здесь, с PHPMyAdmin), которая переводит эти \' в '? Спасибо заранее.

+0

@deceze: он сказал, базы данных с PHPMyAdmin. Он в этом прав. – itachi

+0

Извините, должно быть, неправильно понял. – deceze

ответ

3

Цель эвакуации SQL заключается в том, чтобы избежать пресечения SQL. INSERT INTO table VALUES ('it's a test') .. вызовет у вас проблемы, но когда вы сбежите от него, он превратится в INSERT INTO table VALUES ('it\'s a test') .., и это будет работать и вставить «это тест» в вашу базу данных.

+0

Привет, спасибо за ваш ответ. Просто нужно подтверждение, потому что было использовано для просмотра этих обратных косых черт в моей базе данных, с этими ужасными magic_quotes. С уважением – eric01

1

mysql_real_escape_string() просто экранирует символы, чтобы правильно поместить их в БД. Таким образом, вы не увидите никаких обратных косых черт в юрской БД.

Благодаря тузд Doc (http://dev.mysql.com/doc/refman/5.1/en/string-literals.html#character-escape-sequences):

That is, the escaped character is interpreted as if it was not escaped. For example, “\x” is just “x”. 
+0

Привет, спасибо большое за вашу ссылку. Я действительно смотрел на php.net, но не смог найти там подтверждение. Спасибо – eric01

+0

добро пожаловать –

0

При запросе INSERT INTO atable VALUES ('it\'s a test') выполнить

Только "it's a test" магазин в базе данных :)

+0

привет спасибо за ваш ответ. Но когда я хочу ВЫБРАТЬ эту строку из базы данных и отобразить ее, нормально ли она отображается как 'it 'test? благодаря – eric01

Смежные вопросы