[SOLUCIONADO] Call to a member function fetch_array() on a non-object

Iniciado por peib0l, 23 Septiembre 2014, 22:43 PM

0 Miembros y 1 Visitante están viendo este tema.

peib0l

Buenas tardes amigos,

Tengo un problema con PHP POO y es que hasta hace 1 semana yo usaba un codigo de esta forma:
Código (php) [Seleccionar]


function listarPrecios(){
$conexion = conexion();
$resultado=$conexion->query("SELECT codigo, descripcion,precio FROM servicios WHERE 1");

while($row=$resultado->fetch_array(MYSQLI_ASSOC)){
echo "<article>";
echo "<div class='big'> ";
echo "<h2><a href='single.php?id_post=".$row['codigo']."'>".$row['descripcion']."</a></h2>";
echo "<p>".$row['precio']."</p>";
echo "</div>";
echo "</article>";
}

}


Pero resulta que ahora ha PHP no le gusta.. y llevo horas buscando que narices le pasa a esto pero no encuentro solución para el problema

Código (php) [Seleccionar]
Call to a member function fetch_array() on a non-object


Posiblemente sea una tonteria.... pero que no lo veo  :-(

Gracias por cualquier información.

EFEX

Buscar el error..
Código (php) [Seleccionar]
$resultado=$conexion->query("") or trigger_error($mysqli->error)

O tambien por que no devuelve nada..
GITHUB 

peib0l

#2
Cita de: EFEX en 23 Septiembre 2014, 23:26 PM
Buscar el error..
Código (php) [Seleccionar]
$resultado=$conexion->query("") or trigger_error($mysqli->error)

O tambien por que no devuelve nada..

Muchas gracias, no sabia que podía controlar los errores asi, pero ya encontré el "error"

peib0l

Ya encontré el "error" al parecer es un problema con las dobles comillas ( " " ) en la query, las cambio por comillas simple ( ' ' ) y todo funciona bien

Código (php) [Seleccionar]

$resultado=$conexion->query('select codigo, descripcion, precio from servicios');

dimitrix

LoooooL

1º Te tendría que funcionar

2º Las palabras reservadas SELECT, FROM, UPDATE, WHERE... en mayúsculas ¡SIEMPRE!

3º Puedes usar las comillas dobles (funcionan), pero quizás luego tenías comillas simples en los SELECT... esto se usa para incluir $variables sin tener que concatenar.

4º Usa Codeigniter con Active Records! xD




peib0l

Cita de: dimitrix en 24 Septiembre 2014, 01:04 AM

2º Las palabras reservadas SELECT, FROM, UPDATE, WHERE... en mayúsculas ¡SIEMPRE!

3º Puedes usar las comillas dobles (funcionan), pero quizás luego tenías comillas simples en los SELECT... esto se usa para incluir $variables sin tener que concatenar.

solo me funciona con comilla simple y las sentencias en minuscula XD

dimitrix

¿Es tu código?

Quizás tengas alguna palabra del select declarada (que no reservada) en PHP.

Eso podría hacer que te fallara.




Pablo Videla

Muestranos tu metodo query() de tu clase conexion y ahí veremos el problema.