AnswerBun.com

Faço uma consulta no banco através de concatenações em minha query e retorna vazio

Stack Overflow em Português Asked by Felipe Mascarenhas on January 2, 2022

Faço minha consulta no banco com a seguinte função e não está retornando nada.

    function pesquisarPaciente2($nome_paciente = "", $nascimento_paciente = "", $id_paciente = ""){

    global $pdo;

    $filtrostring = array("1=1");
    $array = array();

    if(!empty($nome_paciente)){
        $filtrostring[] = 'nome LIKE :nome_paciente"';

    }

    if(!empty($nascimento_paciente)){
        $filtrostring[] = 'data_nasc = :nascimento_paciente"';

    }

    if(!empty($id_paciente)){
        $filtrostring[] = 'id = :id_paciente"';

    }



    $sql = $pdo->prepare("SELECT id, nome, data_nasc FROM tbl_pacientes WHERE  ".implode(' AND ', $filtrostring));


    print_r($sql); 
    exit;


    if(!empty($id_paciente)){
        $sql->bindValue(":id_paciente", $id_paciente);

    }   


    if(!empty($nome_paciente)){
        $nome_paciente = "%".$nome_paciente."%";
        $sql->bindValue(":nome_paciente", $nome_paciente);

    }   

    if(!empty($nascimento_paciente)){
        $sql->bindValue(":nascimento_paciente", $nascimento_paciente);

    }   

    $sql->execute();

    if($sql->rowCount() > 0){
            
        $array = $sql->fetchAll();

    }


    return $array;
    exit;




}

Ao dar o print_r(), retorna a seguinte mensagem

inserir a descrição da imagem aqui

Ao executar essa query diretamente no banco substituindo pelo valores, executa normalmente sem nenhum erro.

One Answer

O problema está nas aspas duplas simples ao mesmo tempo, conforme o código abaixo.

if(!empty($nome_paciente)){
    $filtrostring[] = 'nome LIKE :nome_paciente"';

}

O correto para funcionar é colocar apenas aspas duplas assim, "nome LIKE :nome_paciente". Depois de ajustado funcionou perfeitamente.

Answered by Felipe Mascarenhas on January 2, 2022

Add your own answers!

Related Questions

Qual a diferença entre SMALLINT(3) e INT(3)

4  Asked on August 6, 2020 by leonardo-bonetti

     

Combobox preenchida no formulário de edição

1  Asked on July 28, 2020 by frdmarkes

   

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir