我使用Magento并从管理员回滚数据库期间得到PHP分段错误。我做了调查,看看原因是这样的:preg_replace期间PHP分段错误
preg_replace("/'(\\'|\\\\{2}|[^'])*'/", '', $sql);
$ sql字符串够大,我附上了。
https://drive.google.com/file/d/0B9UbKYbywcABOTRSVG5KRl9La0k/edit?usp=sharing
您可以使用这样的脚本来重现问题:
<?php
$test = file_get_contents('test.txt');
$sql = preg_replace("/'(\\'|\\\\{2}|[^'])*'/", '', $test);
可能有人知道这个问题,可以帮助我解决呢?
P.S.类,直接导致的问题是抽象类Zend_Db_Statement 204:208
你为什么用正则表达式重整你的SQL:在方便的.htaccess格式也可以? –
这不是我的代码。这是来自Magento的代码,它使用它来回滚自己的备份(SQL)。它逐个抛出语句并使用Zend Framework执行它。在我的服务器(和其他一些)上回滚不起作用,所以我试图本地化这个问题。经过调查,我明白这个问题在preg_replace。 – freento