Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, boa tarde
Estou montando um relatório utilizando o banco de dados de um sistema e PHP com o DBLIB, porém,todavia,entretanto contudo, mas, quem estruturou o banco criou as tabelas e campos com acentuação.
quando eu vou fazer uma consulta em algum campo que não tenha acentuação a query funciona de boa, mas quanto tem da erro de syntax.
exemplo:
SELECT nome FROM colaboradores; //essa funciona de boa
SELECT descrição FROM colaboradores; //essa da erro de syntax pq tem acentuação
estou usando Linux, PHP 5.6, e a biblioteca freetds para conectar no sql, SQL 2008 express
se alguem souber alguma configuração pra funcionar eu agradeço
sim é SQL Serve, mas n posso alterar os nomes das colunas pq o banco não é meu, ele é utilizado pelo sistema
quem estruturou o banco criou as tabelas e campos com acentuação
Desculpa o vocabulário....
Mas que filho duma ... HUSAUHSUHSAUHSA
dica2:
Esqueça o Object Mode do retorno do DB.
Só PDO::FETCH_ASSOC: na veia.
$pessoa = $stmt->fetch(PDO::FETCH_ASSOC)
echo $pessoa['endereço']; // echo $pessoa->endereço; Pode não hehe
No select tmb, o apóstrofo pode ajudar...
SELECT `endereço` FROM pessoa;>
Desculpa o vocabulário....
Mas que filho duma ... HUSAUHSUHSAUHSA
kkkkkk pois é
select CAST(cp.[dataemissão] AS date) as dataemissao from Service.dbo.contaspagar as cp WHERE notafiscal = 220288
consegui fazer parar da erro de syntax, mas agora fala que a coluna é invalidatentou com o apóstrofo?
tentou com o apóstrofo?
tentei e ja no Management ja da erro de syntax :/
Pelo o que eu pesquisei, chaves "[" e "]" é o único jeito de acessar propriedades (colunas, tabelas) com caracteres latinos.
Tente ver como o SGBD está interpretando a string enviada, pois pode haver conversão por ser UTF-8 para windows 1252 ou ISO-8859-1.
a tabela esta como Latin1_General_CI_AS
e estou salvando meus .PHP em UTF8
A conexão com o SGBD não é UTF-8. FreeTDS é Ansi/Windows 1252.
solução:
$query=iconv( 'UTF-8', 'Windows-1252', $query );
Tente utilizar com colchetes:
SELECT [descrição] FROM table
Se não funcionar, altere os nomes. Para utilizar a Fretds, deve estar utilizando SQL Server, certo? O Management possui funções para alterar os nomes de colunas.