Я обновляю некоторые устаревшие PHP-коды и пытаюсь получить приличную регистрацию ошибок. Все вызовы к БД Теперь пройти через эту функцию:Ошибка pg_query, идущая прямо на консоль, в то время как pg_last_error ничего не возвращает
private function dbQuery($sql) {
if (DEBUG) print("\n" . $sql . "\n");
$result = pg_query($this->dbh, $sql);
if ($result == FALSE) print("DB Error: " . pg_last_error($this->dbh) . "\n");
return $result;
}
Но, по крайней мере в одном случае, ошибка появляется в консоли все само по себе (как PHP Warning), в то время как pg_last_error ничего не возвращает (несмотря на то, результат вызова pg_query - FALSE). Фактический выход:
insert into pull_count (show_pull_item_id, count_pulled, created, modified) values (1076028, 1, NOW(), NOW())
PHP Warning: pg_query(): Query failed: ERROR: permission denied for relation pull_count in /var/www/html/src/backend/engine.php on line 1740
DB Error:
И в вызывающей функции, где мы называем снова pg_last_error(), мы до сих пор ничего не получить.
Итак ... в чем дело? Почему ошибка возникает на консоли, а не на pg_last_error - и как я могу ее исправить?
Дальнейшее исследование показывает, что оно не имеет ничего общего с ошибкой разрешений ... если моя строка запроса содержит какую-либо ошибку вообще, я получаю тот же результат: предупреждение PHP в консоли и вообще ничего от pg_last_error() , Есть ли настройки конфигурации где-то, что влияет на это поведение? –