PDOException com erro genérico ao consultar tabela de session no Yii 2
Boa tarde. Estou assumindo que este erro não tem relação com o SQL porque eu executei a query diretamente no banco de dados e não recebi nenhum erro.
Quando acesso o site da empresa que trabalho no meu ambiente de desenvolvimento local, vejo a seguinte mensagem
SQLSTATE[HY000]: General error
The SQL being executed was:
Error Info: Array
(
[0] => HY000
)↵
Caused by: PDOException
SQLSTATE[HY000]: General error
in /../vendor/yiisoft/yii2/db/Command.php at line 840
Onde o erro yiisoft/yii2/db/Command.php at line 840 está executando uma query de consulta à tabela de sessão, que tem a seguinte estrutura:
(
id CHAR(40) NOT NULL PRIMARY KEY,
expire INTEGER,
data BLOB,
user_id INTEGER
)
Analisando o Stack Trace, eu notei que o site faz essa busca pra verificar que o usuário está logado ou apenas visitando. Em algum momento cria um registro novo assim quando é acessado, salva o id num cookie PHPSESSID e então tenta buscar ele novamente, onde ele retorna esse erro.
//yiisoft/yii2/web/DbSession.php
public function readSession($id)
{
$query = new Query();
$query->from($this->sessionTable)
->where('[[expire]]>:expire AND [[id]]=:id', [':expire' => time(), ':id' => $id]);
if ($this->readCallback !== null) {
$fields = $query->one($this->db);
return $fields === false ? '' : $this->extractData($fields);
}
$data = $query->select(['data'])->scalar($this->db); // linha 147 - é a query que causa o erro
return $data === false ? '' : $data;
}
Não descobri onde ele cria o novo registro, mas parece que há uma falha aí, porque o campo data está ficando em branco, e acho que essa pode ser a causa.
Eu já reinstalei e atualizei o PHP, o Apache e o Postgre. Também formatei o computador e o erro continua. O que me surpreende, pois no ambiente de produção isso não ocorre.
Também tentei pular essa verificação de usuário, mas então o erro é substituído por outro de verificação de navegador, o qual escolhi não me aprofundar.
E por fim não consigo debugar. Tinha o ambiente bem configurado com o sublime text e o chrome, mas depois que cometi o erro de formatar não consegui configurar novamente.Discussão (0)
Carregando comentários...