GARANTIR DESCONTO

Fórum Problemas com acentuações PHP no mysql #570110

29/10/2016

0

Estou com um problema utilizando filtro no PHP no banco de dados MySQL. Quando procuro algum termo com acentuação não está retornando do banco de dados o termo.
Já tentei utilizar tanto utf8_decode($filtro) quando utf8_encode($filtro).

em meu formulário estou usando o seguinte código index.php
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
                                   
<form method="POST" action="#">
                                            <input type="text" class="form-control" name="filtro" placeholder="">


                                            <button type="submit" class="btn btn-default" aria-label="Left Align">
                                                <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
                                            </button>

                                    </form>


Pegando o retorno do formulário
if (!empty($_REQUEST['filtro'])) {
            $filtro = "%" . $_REQUEST['filtro'] . "%";
        }else{
            $filtro = "%%";
        }


Código da consulta no banco de dados
select * from duvidas
                where titulo like :filtro or descricao like :filtro


Agrupamento Collation utilizando no banco
utf8_general_ci
Samuel Lopes

Samuel Lopes

Responder

Posts

31/10/2016

Marcio Araujo

Bom dia Samuel! Te perguntar, como criou o banco de dados?

CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


Esse exemplo achei nesse artigo que trata sobre o assunto.

http://rmonte.com/acentuacao-no-php-e-mysql-com-utf-8/

Nesse outro link

http://www.devwilliam.com.br/php/10-pegadinhas-da-linguagem-php

No
6º Exemplo – Função strlen() x mb_strlen() ele descreve essas funções, conhece alguma delas?
Responder

Gostei + 0

02/11/2016

Marcio Araujo

Samuel, conseguiu tentar converter esse problema?
Responder

Gostei + 0

03/11/2016

Andre Alves

Samuel, você deve setar o CHARSET logo após a conexão com o banco de dados. Por exemplo:

Arquivo: conexao.php

<?php

$conexao = mysql_connect("localhost","root","senha") or die(mysql_error());
mysql_set_charset("UTF8",$conexao);
$selecao = mysql_select_db("nome_do_seu_banco") or die(mysql_error());

?>


Se estiver usando MySQLi Procedural, o mesmo código fica assim:

<?php

$conexao = mysqli_connect("localhost","root","senha","nome_do_seu_banco") or die(mysqli_connect_error());
mysqli_set_charset($conexao,"UTF8");

?>
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar