Mensagens de erro do Postgres no log de erros do Apache

1

Estou executando o Apache 2.2, PHP 5.2 e Postgres 8.2 no Windows, e estou vendo algo estranho no arquivo error.log do Apache. Ocasionalmente, vejo a mensagem "número da linha -1 está fora do intervalo 0 ..- 1" aparece repetidamente. Ao contrário de todas as outras linhas nesse arquivo de log, não há registro de data e hora ou nível de log. Apenas aquela string exata.

Pesquisando, parece que a mensagem é, caractere por caractere, uma mensagem de erro comum do Postgres, mas não é um erro do Apache. Eu já vi isso acontecer várias vezes e em vários servidores diferentes. Eu não consigo reproduzir isso, no entanto. Eu tentei lançar todos os tipos de consultas de banco de dados com erros montados e consultas de conjunto de resultados no Postgres via PHP, e nenhuma delas parece acionar essa linha sendo gravada no arquivo de log. É possível que os erros do Postgres estejam terminando no meu arquivo de log do Apache e, em caso afirmativo, como? O que acionaria uma mensagem de erro como essa?

Obrigado!

    
por Warren Pena 28.05.2010 / 00:27

1 resposta

4

O erro é lançado pelo PostgreSQL, mas é uma mensagem para o cliente. Neste caso, seu script PHP. Este script tenta obter algumas informações que não estão lá.

Na lista de discussão :

The above error happens if a program calls PQgetvalue(), PQgetlength(), or PQgetisnull() with a row number of -1 and if there were no rows in the result.

O seu script sempre verifica o conjunto de resultados antes de fazer algo com o conjunto de resultados?

    
por 29.05.2010 / 11:21