Необходимо записывать ошибки программы в журнал. Эти ошибки могут включать все – от синтаксических ошибок и ненайденных файлов до некорректных запросов в базу данных и потерянных соединений.
Для записи в журнал ошибок предназначена функция error_log():
// Ошибка LDAP
if (ldap_errno($ldap)) {
error_log("LDAP Error #" . ldap_errno($ldap) . ": " . ldap_error($ldap));
}
Ведение журнала ошибок упрощает процесс отладки. Разумная регистрация ошибок облегчает их исправление. Всегда записывайте информацию о причине ошибки:
$r = mysql_query($sql);
if (! $r) {
$error = mysql_error();
error_log('[DB: query @'.$_SERVER['REQUEST_URI']."][$sql]: $error");
} else {
// результаты обработки
}
Вы не получите необходимую помощь в процессе отладки, какую могли бы получить, если фиксируете лишь сам факт ошибки без какой-либо вспомогательной информации:
$r = mysql_query($sql);
if (! $r) {
error_log("bad query");
} else {
// результат обработки
}
Другим полезным приемом является включение констант __FILE__ и__LINE__ в сообщения об ошибках:
error_log('['.__FILE__.']['.__LINE__."]: $error");
Константа __FILE__ – это текущее имя файла, а __LINE__ – номер текущей строки.
Документацию по функции error_log() на http://www.php.net/error-log.