你好朋友来自SO!
好吧,这次我有一点点复杂的问题。我们有一个网络爬虫在一天中的大部分时间内正常运行并正常运行。然而,有时它会停止:接下来要分析的链接,永远不会改变它的状态(从挂起到扫描),当然这会停止整个循环。
我们使用以下方式记录所有PHP错误:
//errores producción
@ini_set('error_reporting', -1);
@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/var/www/vhosts/xxx.com/xxx.com/xxx');
没有任何证据可以证明所述问题。 0个异常。
因此,我认为问题可能与某些 MySQL问题有关?
我们所做的每一个MySQL查询都是通过自定义函数使用MySQLi完成的,所以我的问题是:
以下是用于查询MySQL的一些函数:
Function db_ob($db_link, $ask) {
$feedback = mysqli_fetch_object(mysqli_query($db_link, $ask));
return $feedback;
}
和
Function db_ob_all($db_link, $ask) {
$feedback = mysqli_query($db_link, $ask);
while ($row = mysqli_fetch_object($feedback)) { $value[] = $row; }
return $value;
}
所以我正在寻找的是一个或两行解决方案,我可以添加到这些函数中,以便存储和跟踪我当前存储PHP错误的同一文件中的任何问题或错误
提前致谢! 克里斯;
答案 0 :(得分:0)
解决:
1)创建一个函数来跟踪错误到PHP error_log:
Function informar_error_db($db_link) {
error_log("Dreadful SQL error: ". mysqli_error($db_link)." in ".$_SERVER["SCRIPT_FILENAME"]);
}
2)如果有MySQLi问题,请保存em:
Function db_ask($db_link, $ask) {
$feedback = mysqli_query($db_link, $ask);
if (mysqli_error($db_link)) { informar_error_db($db_link); }
return $feedback;
}
下面: if(mysqli_error($ db_link)){informar_error_db($ db_link); } 强>