Я использую Doctrine ORM для php и Zend MVC. У меня есть база данных mysql. Когда я вставляю в базу данных, она ускользает от кавычек. Другими словами, когда я вхожу
<input name="customer_name" value="Test'ed user"> ...
в мою форму и назначьте объект доктрины и сохраните.
Когда я смотрю на базу данных через командную строку mysql, я получаю
Test\'ed user
Есть ли способ отключить это или мне нужно вызвать stripslashes()
для каждой переменной?
Проверьте, включена ли функция magic_quotes_gpc
, либо просмотрев php.ini или выполнив get_magic_quotes_gpc()
.
Если у вас есть доступ к php.ini, выключите его. В противном случае вам нужно будет удалить косые черты в ваших сценариях, используя stripslashes()
.
Вы можете избежать чумы magic_quotes_gpc
, добавив что-то вроде этого вверху ваших страниц:
if(get_magic_quotes_gpc()) {
if(!function_exists('stripishlashes_all')) {
function stripslashes_all(&$data) {
foreach($data as &$_value) {
if(is_array($_value)) {
stripslashes_all($_value);
}
else {
$_value = stripslashes($_value);
}
}
}
}
stripslashes_all($_REQUEST);
}
Очень полезно, когда ваш код работает на сервере, на котором у вас нет полного контроля, или если вы планируете его распространять.