Переключение с MySQL_query на PDO вызывает нежелательное экранирование

Недавно я переключил все свои старые вызовы mysql_query на PDO. Я столкнулся с проблемой, которой не было в конфигурации mysql_query. Когда я пытаюсь ввести переменную в базу данных с котировками, она отображается в моей базе данных как побеги. У меня отключены магические кавычки в моем файле php.ini.

$myString = "Enter 'one' now";
$sql=$pdo->prepare("UPDATE $tbl_name SET string=:myString WHERE etc...);
$sql->execute(array(':myString' => $myString));

Это обновляет до

Enter \'one\' now

Мне нужно

Enter 'one' now

Этого не было до того, как я переключился на PDO. Есть ли способ обойти это без потери безопасности?

Спасибо!


person Milksnake12    schedule 14.08.2013    source источник
comment
Что вы имеете в виду, что он возвращает это... Вы делаете обновление, оно не должно возвращать эту строку...   -  person cmorrissey    schedule 15.08.2013
comment
Извините, он обновляет эти значения в базе данных.   -  person Milksnake12    schedule 15.08.2013


Ответы (1)


На вашем сервере включены магические кавычки, документация по PHP, поскольку в ней рассказывается о различных способах его отключения.

Что касается вашего комментария: вы также можете попробовать создать файл php.ini в своем домашнем каталоге со следующим:

magic_quotes_gpc = off
magic_quotes_runtime = off
magic_quotes_sybase = off

Если это не сработает, обратитесь к своему хосту, чтобы решить проблему.

person Prisoner    schedule 14.08.2013
comment
Я пытался добавить php_flag magic_quotes_gpc off и php_value magic_quotes_gpc off в свой .htaccess. Я получаю ошибку 500 на своем сайте, когда добавляю эти строки. - person Milksnake12; 15.08.2013
comment
Вы используете виртуальный хостинг? Если да, то кто это, поскольку у них может быть другой способ отключить его (например, с помощью файла php.ini в вашем домашнем каталоге, см. мое редактирование) - person Prisoner; 15.08.2013
comment
Просто чтобы уточнить, php.ini понадобятся только эти три строки? Это не будет связываться с чем-либо еще мудрым php? - person Milksnake12; 15.08.2013
comment
Все зависит от вашего веб-хостинга @Milksnake12. Каждый сервер настроен по-своему, но многие веб-хосты позволяют вам поместить файл php.ini в вашу папку home, чтобы вы могли переопределить тривиальные элементы конфигурации, такие как этот. Не верьте мне на слово, обратитесь к своему провайдеру или системному администратору. - person Prisoner; 15.08.2013
comment
Я добавил файлы с этими строками, и это сработало. Большое тебе спасибо! - person Milksnake12; 15.08.2013