Ir para conteúdo

POWERED BY:

Arquivado

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

mbb

[Resolvido] Erro select Mysql e PDO

Recommended Posts

Pessoal estou com um problema no Mysql com PHP ele não esta aceitando o select com clausula like com a procura com palavras com acentuação olha o exemplo abaixo:

 

$db = new PDO('mysql:host=localhost; port=3306; dbname=dspbanco', 'root', '', array( PDO::ATTR_PERSISTENT => true));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);  

$stmt = $db->prepare("SELECT * FROM tab_lojas where id_estado = '26' and id_cidade = '5346' and bairro like '%Aclimação%';");
$stmt->execute() or die($db->errorInfo());
$result = $stmt->fetchAll();	

echo "<pre>";
print_r($result);
ele só funciona quando tiro a acentuação pq?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Márcio,

 

Na verdade ele não apresenta um erro e sim ele não me traz nenhuma informação , me da um array em branco ... mas tenho certeza que tem informações no banco com acentuação ... Pois realizo a consulta direto no banco ele me retorna os dados....

 

mas acabei achando a solução , quando utilizamos PDO com conexão com o Mysql e estamos trabalhando com um banco em UTF-8 precisamos colocar um parametro (SET NAMES utf8) a mais na classe de conexão que ficaria assim :

 

$db = new PDO('mysql:host=localhost; port=3306; dbname=dspbanco', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);

 

hehehehe

Abs e espero que isso ajude muita gente rsrs

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.