最近发现 NexusPHP 的“清理“不彻底,即使选择了强制清理全部,”清理“也没法走到头。几经调试发现是 or die(mysql_errno()) 导致了脚本提前结束。类似以下代码,一个计数结果为 0 导致脚本结束:
$r = get_row_count('users', 'where id = -1') or die(mysql_errno());
if ($r) {
echo 'OK';
} else {
echo 'Bad';
}
//do something others
经搜索 NP 代码里边有不少 or die(mysql_errno()),其中一些比较常用的函数如 get_row_count(),get_row_sum(),get_single_vlaue() 等都有。要知道,当没有问题只是结果为空时,mysql_errno() 结果是 0,die(0) 是没有任何输出的。这将导致不可预估的问题,且很难发现。有的地方经人修改已经注释掉。这个很明显是不对的,建议全局搜索全部删除。可参考此提交@7727ffc。