我在 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