PHP - PHP Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool

 
Vista:
Imágen de perfil de Richard
Val: 36
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

PHP Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool

Publicado por Richard (16 intervenciones) el 19/02/2021 06:21:05
Hola chicos, se ha desarrollado una consulta simple que saca datos de la base de datos y los pone en una tabla, en localhost con xampp (php 7.3) funciona bien pero en el hosting con cpanel me da error .

PHP Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool

Creo que tengo algo mal una práctica no adecuada del código será que me guían por favor?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
 
    $nombre_Cliente = NULL;
 
    $buscarPor = trim(filter_input(INPUT_POST,'Criterio', FILTER_SANITIZE_STRING));
    $where = trim(strtolower(filter_input(INPUT_POST, 'itBuscar', FILTER_SANITIZE_STRING)));
 
    $buscar = true;
    if (empty($where))
    {
       $buscar = false;
    }
    if ($buscarPor === 'Email')
    {
        if(!filter_var($where, FILTER_VALIDATE_EMAIL))
        {
            $buscar = false;
        }
    }
 
    $sq1 = "SELECT OS.IDOS, CLI.NOMECLIENTE, OS.DATAINICIAL, OS.DATAFINAL, OS.STATUS, OS.OBSERVACOES, OS.LAUDOTECNICO
            FROM clientes CLI
            INNER JOIN OS ON OS.Clientes_id = CLI.idClientes";
 
    if ($buscar)
    {
        $datoBuscar = "'".$where."'";
        if ($buscarPor === 'Documento')
        {
           $query = $sq1. " WHERE CLI.documento = $datoBuscar";
        }
        else
        {
            $query = $sq1. " WHERE CLI.email = $datoBuscar";
        }
 
        $cn = new mysqli('localhost', 'root', '', 'stecnico');
        $rs = $cn->query($query);
        $rs = $cn->query($query);
        $nombre_Cliente = $rs->fetch_assoc()['NOMECLIENTE'];
        $vecresultado = array();
        while ($fila = $rs->fetch_row())
        {
           //$nombre_Cliente = ($fila[1]);
           array_push($vecresultado, $fila);
        }
 
        mysqli_free_result($rs);
        mysqli_close($cn);
        }
    else
    {
         header("Location: /stecnico/consultaros/index.php?Error=s");
    }
?>
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

PHP Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool

Publicado por Mauro (1036 intervenciones) el 19/02/2021 14:31:50
Hola Richard:

El problema es que estás asumiendo que $rs tiene un resultset. Deberías verificar los errores que pudieran ocurrir.

Por ejemplo, debes validar que la conexión ha sido exitosa y que la consulta se ha podido ejecutar correctamente.

Te dejo este artículo que te puede ayudar.

Consúltame cualquier duda ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Richard
Val: 36
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

PHP Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool

Publicado por Richard (16 intervenciones) el 19/02/2021 15:33:23
le coloqué el siguiente código antes de la conexion mysqli

1
mysqli_report(MYSQLI_REPORT_ERROR|MYSQLI_REPORT_STRICT);

ahora muestra el error:

1
2
3
4
5
[19-Feb-2021 13:29:42 UTC] PHP Fatal error:  Uncaught mysqli_sql_exception: Table 'sistegra_banco.OS' doesn't exist in /home/sistegra/public_html/stecnico/consultaros/pages/tables/data.php:81
Stack trace:
#0 /home/sistegra/public_html/stecnico/consultaros/pages/tables/data.php(81): mysqli->query('SELECT OS.IDOS,...')
#1 {main}
  thrown in /home/sistegra/public_html/stecnico/consultaros/pages/tables/data.php on line 81

la verdad no lo comprendo :( llevo me podrías ayudar por favor?
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

PHP Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool

Publicado por Mauro (1036 intervenciones) el 20/02/2021 17:19:27
Hola Richard:

Bueno pues ahora tienes algo más de información... por lo que veo parecería que estás intentando cruzar con una tabla llamada "OS", la cual no existe en tu base de datos... ¿verificaste tu esquema?
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 Richard
Val: 36
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

PHP Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool

Publicado por Richard (16 intervenciones) el 20/02/2021 17:37:43
Gracias, logré resolverlo, el problema era porque todo estaba en mayúsculas en el "SELECT" cuando en la base de datos las tablas están en minúscula, cuando respeté eso el problema desapareció y pude realizar la búsqueda...

Ahora me surgió otro problema y es que por email se puede buscar pero por documento o dni no... abrí un hilo para eso en MariaDB porque con mysql no pasa eso... solo con MariaDB...

Si te interesa darme una manito con eso te lo agradecería mucho!

https://www.lawebdelprogramador.com/foros/MariaDB/1776186-Problema-al-acceder-a-consulta-MariaDB-SQL-Syntax.html
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