我正在研究一次性PHP(5.2.6)脚本,该脚本将数百万个MySQL(5.0.45)数据库行迁移到另一个表中的另一种格式,同时在内存中保留(大量)相关数据增量计算。数据以递增方式计算。 (大约1000行)
脚本在随机点中意外停止,没有错误消息。我的问题是 - 如何找出脚本停止的原因。 (内存中断?MySQL等超时......)
我有set_time_limit(0);所以它不是PHP超时。
答案 0 :(得分:2)
查看日志文件, 可能是记忆
您需要添加更多内存
在php.ini中 memory_limit
参数
答案 1 :(得分:1)
您可以尝试将错误报告级别(在php.ini中)设置为非常高,因此它会抱怨更多内容。
我的第一个猜测是你达到执行时间限制或内存限制并且脚本已经终止,但你已经覆盖了。
答案 2 :(得分:1)
error_reporting(E_ALL | E_STRICT);
答案 3 :(得分:1)
您是否尝试过从命令行而不是通过Web浏览器运行PHP?也许服务器有一些东西,一旦达到一定的内存使用量就会导致它崩溃?
一般来说,批量操作不应该通过Web服务器完成,它可能会使它们在中途失败。
答案 4 :(得分:0)
感谢大家的帮助(我投了相关答案)。问题是内存和设置ini_set('memory_limit','200M');解决了它(这是一次性的脚本)