【发布时间】:2013-12-23 20:32:46
【问题描述】:
我正在使用 Magento 并在从管理员回滚数据库期间遇到 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);
可能有人知道这个问题并可以帮助我解决它吗?
附:直接导致问题的类是抽象类 Zend_Db_Statement 204:208
【问题讨论】:
-
你为什么要用正则表达式来破坏你的 SQL?
-
这不是我的代码。这是来自 Magento 的代码,它使用它来回滚自己的备份 (SQL)。它会一一抛出语句并使用 Zend Framework 执行它。在我的服务器(和其他一些服务器)上,回滚不起作用,所以我试图定位问题。经过调查,我了解到问题出在 preg_replace 中。
标签: php magento zend-framework crash