Intereting Posts
Вставка базы данных mysql меняет все ID на 4294967295 Как изменить второй раскрывающийся список на основе раскрывающегося списка? getimagesize () vs finfo_file () для определения типа изображения? автоматически обновлять строку после определенного времени Лучший способ отправить данные с контроллера для просмотра после отправки формы? Как получить количество страниц в Word Document на Linux? Насколько безопасно хранить переменные DB с помощью SetEnv или php.ini? Nginx PHP Загрузить ход работы? Как заставить PHP установить код состояния HTTP на 500 автоматически в случае каких-либо ошибок? (включая те, которые не могут обрабатываться пользователем) Связывание переменных в PHP ADOdb Как сравнить две даты в php Арифметическая операция в конкатенации строк без круглых скобок вызывает странный результат Групповые страницы из одной колонки Как написать сеанс для обоих www. и не-www версия моего домена? Laravel redirect :: route показывает сообщение между загрузками страницы

Как правильно избежать строки через PHP и mysql

Может кто-то объяснить, в чем разница между использованием mysql_real_escape_string в строке или обертыванием “ вокруг столбца.

Например, "insert into table (``column``) values ('$string')"

или

 $escapestring = mysql_real_escape_string($string); "insert into table (column) values ('$escapedstring')" 

В чем разница между этими двумя и что я должен использовать? Благодарю.

Solutions Collecting From Web of "Как правильно избежать строки через PHP и mysql"

Есть разница между выступом `и одиночной цитатой ' .

Возврат предназначен для исключения имен таблиц и полей, которые могут противоречить зарезервированным словам MySQL. Если бы у меня было поле с именем date и запрос типа SELECT date FROM mytable мне нужно было бы избежать использования date чтобы, когда MySQL анализирует запрос, он будет интерпретировать мое использование date как поля, а не date типа данных .

Единая кавычка ' предназначена для буквенных значений, как в SELECT * FROM mytable WHERE somefield='somevalue' . Если somevalue содержит одиночные кавычки, тогда их необходимо экранировать, чтобы предотвратить преждевременное закрытие литерала цитаты.

Эти двое не связаны вообще (насколько я знаю, так или иначе)

Из руководства: http://php.net/manual/en/function.mysql-real-escape-string.php

Вызывает специальные символы в unescaped_string, принимая во внимание текущий набор символов соединения, чтобы можно было разместить его в mysql_query ().

По сути, это то, что он делает, это приведет к тому, что символы, которые небезопасны, войдут в запросы mysql (которые могут сломать или исказить запрос)

Так что o\'reily