Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Samuel Gomes_148425

PHP PDO mysql acentuação na query apresenta erro

Recommended Posts

Estou com um problema que não estou conseguindo resolver

 

tenho um projetinho php aqui que utiliza o pdo para fazer a conexão com o meu banco de dados mysql

 

No início do script eu coloquei assim:

header('Content-Type: text/html; charset=utf-8');

 

A minha tabela esta está declarada como utf8 - default collation / MyISAM

 

Ai eu vou fazer a consulta nessa tabela:

 

$sqlResid = $conexao->query('SELECT Código FROM resid limit 500')->fetchAll(PDO::FETCH_ASSOC);

 

Que retorna o seguinte erro:

Fatal error: Call to a member function fetchAll() on a non-object in

 

mas quando eu faço assim:

 

$varGambiarra = utf8_decode('Código');

$sqlResid = $conexao->query('SELECT '.$varGambiarra.',cod_poste FROM resid limit 500')->fetchAll(PDO::FETCH_ASSOC);

 

funciona.

 

Eu quero eliminar essa variável desnecessaria.

 

Uma vez fiz um curso na SON, e lá me disseram para utilizar sempre o utf8, entao eu declaro utf8 no php, no mysql, e pra mim tudo deveria se resolver.

 

Agora estou pensando, será que tenho de deixar a tabela configurada latin1 defatult collation?

 

Se a resposta for sim, como eu faço para mudar todas minhas tabelas para esse novo padrão?

 

Ainda não testei a aplicação com latin1, vou testar agora, e ver se funciona, mas fica minha dúdvida ai!

 

Obrigado

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

$conexao->exec("SET CHARACTER SET utf8");

 

 

Melhor converter logo sua base de dados e suas tables para UTF-8, assim não precisa ficar fazendo isso toda vez que for fazer uma consulta.

 

ALTER DATABASE MeuBanco CHARACTER SET utf8;
ALTER TABLE minha_tabela CHARACTER SET utf8;

 

 

 

De toda forma, é melhor seguir as convenções do que ficar fazendo gambiarras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Melhor converter logo sua base de dados e suas tables para UTF-8, assim não precisa ficar fazendo isso toda vez que for fazer uma consulta.

 

ALTER DATABASE MeuBanco CHARACTER SET utf8;
ALTER TABLE minha_tabela CHARACTER SET utf8;

 

 

 

De toda forma, é melhor seguir as convenções do que ficar fazendo gambiarras.

 

Mas já estava convertido para ut8

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.