我正在为 php 和 Zend MVC 使用 Doctrine ORM。我有一个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);
}

当您的代码在您无法完全控制的服务器上运行或者您计划分发它时非常有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top