我有一个在命令行上运行的脚本并执行一些mysql数据库处理(从一个表中选择数据,进行一些计算并插入/更新另一个表)。经过10000次迭代后,我重复得到以下错误:
DBALStatement :: removeColons():发送5个字节失败,错误为errno = 32 破管
这是有问题的方法:
public static function removeColons($params) : array
{
$result = [];
foreach ($params as $key => $val) {
if ($key[0] == ':') {
$key = substr($key, 1);
}
$result[$key] = $val;
}
return $result;
}
发生错误的行是return语句:
return $result;
我知道在执行网络或文件操作时会发生损坏的管道,但是如何在一个简单的返回语句中得到这个错误,而且没有管道附近?我错过了什么?
编辑:似乎破坏的管道实际上发生在mysql查询期间,这会更有意义。我目前仍在试图弄清楚这是一个超时问题还是什么。但是,请务必注意,PHP错误日志中报告的方法和行号在此实例中似乎是错误的,因为错误显然不会在return语句中发生。我认为这是PHP错误报告中的一个错误。