【发布时间】:2023-08-23 12:24:01
【问题描述】:
我在 php 中使用 fwrite 在 logs.txt 中记录一些错误。
问题是,当我打开 db_errors.txt 时,我看到消息保存了多次,而不是只保存一次。
我的 fwrite 代码不在任何循环中,所以它肯定只执行一次。使用第三方记录器类也有同样的想法。
if (!$result = mysqli_query($link, $query)){
$today = getdate();
$handle = fopen("logs/db_errors.txt", "a");
fwrite($handle, $today['mday'].'/'.$today['mon'].'/'.$today['year']." | ".mysqli_errno($link)." : ".mysqli_error($link)." | ".$query." \n");
fclose($handle);
}
这在 db_errors.txt 中写入 3 行,输出相同。
11/4/2011 | 1054 : Unknown column 'uids' in 'field list' | SELECT uids FROM users WHERE user_id=6 LIMIT 1
11/4/2011 | 1054 : Unknown column 'uids' in 'field list' | SELECT uids FROM users WHERE user_id=6 LIMIT 1
11/4/2011 | 1054 : Unknown column 'uids' in 'field list' | SELECT uids FROM users WHERE user_id=6 LIMIT 1
【问题讨论】:
-
向我们展示你的代码怎么样?
-
问题的标题有点好笑,考虑到问题
-
“代码不在 [...] 任何自调用函数中”是什么意思?不调用怎么调用呢?
-
您使用
a打开文件。您确定其他条目不是来自较旧的执行吗? @netcoder:有点奇怪的描述,但我敢打赌他的意思是“递归”:) -
我认为这是正常的,因为mysqli_error可能会回显多个错误消息,您可以发布db_errors.txt的内容。