PHP - Error al intentar hacer buscador con consulta preparada

 
Vista:
Imágen de perfil de María de Alejandría
Val: 72
Ha aumentado su posición en 10 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al intentar hacer buscador con consulta preparada

Publicado por María de Alejandría (37 intervenciones) el 14/04/2019 11:02:38
Saludos
Estoy haciendo un buscador en PHP empleando la siguiente consulta preparada:

1
2
3
4
5
$consulta = $conexion->prepare("SELECT * FROM usuarios WHERE CONCAT_WS(' ', nombre,    apellido) LIKE _utf8  ? ORDER BY nombre");
$consulta->bind_param("s", $buscar);
$consulta->execute();
 
$resultado = $consulta->get_result();

$buscar equivale al término que el usuario inserta en el formulario de búsqueda. La cuestión es que sale sin el utf_8, pero si lo elimino no me reconoce las palabras con tilde si las busco aunque estén en la tabla de usuarios. Si ejecuto la consulta con utf_8 me sale este error:

Fatal error: Uncaught Error: Call to a member function bind_param() on bool in C:\xampp\htdocs\web\buscador.php:97 Stack trace: #0
{main} thrown in C:\xampp\htdocs\web\buscador.php on line 97

La línea se corresponde con la de

1
$consulta->bind_param("s", $buscar);

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de info
Val: 39
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al intentar hacer buscador con consulta preparada

Publicado por info (8 intervenciones) el 14/04/2019 18:56:13
Hola María, la verdad es que no se muy bien que puede ser...
Podría ser que $consulta tuviera el valor "false"? en vez de un objeto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 1.009
Bronce
Ha disminuido su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al intentar hacer buscador con consulta preparada

Publicado por italo_pm (144 intervenciones) el 15/04/2019 08:23:51
Hola

Lo primero que haria seria controlar como tienes definida la variable $buscar, ya que, si utlizaras el LIKE debes darle '%$buscar%' o prepar antes $buscar con %%.

normalmente lo hago asi:

ejemplo con pdo, con mysqli basta que lo adaptes.

1
2
3
4
5
6
7
8
9
$nombre_input = $_POST['query'];
 
  $nombre_like = "%$nombre_input%";
 
  $search_query = "select id, nombre, apellido, from usuarios where nombre LIKE ?";
 
  $stmt = $pdo->prepare($search_query);
 
  $stmt->execute([$nombre_like]);

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad