【发布时间】:2012-01-11 10:03:59
【问题描述】:
在这里感到困惑....这段代码:
$qry = sprintf("INSERT INTO news_sites_homepage_grab
VALUES ('', %d, '%s', NOW(), NOW())",
$site_id, mysql_real_escape_string($html));
...在$html 每次更改的循环中执行。此代码执行一次,但下一次,脚本就会死掉。没有警告/错误,什么都没有。 $html 是一个代表网页的字符串,因此它可能很长。我已将 PHP 中的内存限制提高到 32M,并将 MySQL 中的 max_allowed_packet 设置为 16M,但没有。
有人有什么想法吗?谢谢!
更新:这是在循环中调用的函数。
function save_html($site_id, $html) {
global $db;
try {
$qry = sprintf("INSERT INTO site_grab VALUES ('', %d, '%s', NOW(), NOW())",
$site_id,
mysql_real_escape_string($html));
$db->insert($qry);
}
catch(Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
return;
}
【问题讨论】:
-
你能发布更多代码吗?至少看到循环会很有帮助。
-
您要插入的列的名称是什么?
-
id、sid、site_text、date_added、date_modified
-
看来我的猜测离我们不远了。
foo列除外。那根本不对。 -
什么是
$db?您是在使用PEAR::MDB2还是其他抽象库,还是一些随机的内部类?问题可能在于那个神秘的->insert方法。