Я обновляю устаревший PHP-код и пытаюсь получить приличную запись ошибок. Все вызовы в БД теперь проходят через эту функцию:
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), в то время как 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 – и как я могу ее исправить?