Mysql_real_escape_string ... есть автоматическая настройка еще где? - PullRequest
2 голосов
/ 27 октября 2010

Здесь странная ситуация.В моей локальной базе данных mysql (v5.1.41) я должен использовать эту управляющую команду, если мне нужно без проблем обрабатывать синтаксисы цитат пользователей.Однако я не могу использовать эту команду в базе данных MySQL моего веб-сервера (v5.0.91-сообщество).Если эта команда используется на веб-сервере (apache v2.2.13), к синтаксису цитаты пользователя добавляется дополнительный синтаксис косой черты, поэтому, если я удалю команду mysql_real_escape_string, входные данные с кавычками не будут иметь проблем при вставке в базу данных.

Так что мне было интересно, кроме php, есть ли в apache (v2.2.13) или в самом mysql параметр, который может автоматически работать с синтаксисом цитат, таким как PHP-команда mysql_real_escape_string?

СпасибоВы заранее

Ответы [ 3 ]

6 голосов
/ 27 октября 2010

Это, вероятно, из-за Магические кавычки . Отключите или удалите их , они являются благими намерениями, но также раздражают.

2 голосов
/ 27 октября 2010

Это означает, что настройка php magic_quotes_gpc включена на сервере.Это устарело, и есть способ обойти это - удалив косую черту в начале кода:

<?php
if (get_magic_quotes_gpc()) {
    function magicQuotes_awStripslashes(&$value, $key) {$value = stripslashes($value);}
    $gpc = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    array_walk_recursive($gpc, 'magicQuotes_awStripslashes');
}
0 голосов
/ 27 октября 2010

Я бы порекомендовал вам использовать filter_input для получения ваших пользовательских данных, поскольку они не заботятся о magic_quotes, и параметризованных запросов для выполнения вашей работы с базой данных (см. mysqli или PDO ).

...