Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Amigo, não acredito. Utilizando acentuação em nome de campo ?
Se voce não acredita, o problema é seu
Solucionei assim:
$conexao->exec("SET CHARACTER SET utf8");
Quem criou o tópico foi TU, o problema é TEU. E não é uma boa prática utilizar acentos em nome de campos ou tabelas.
$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.
>
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
Amigo, não acredito. Utilizando acentuação em nome de campo ?