PHP - función php mysqli, error property si no hay datos

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

función php mysqli, error property si no hay datos

Publicado por Arenas (3 intervenciones) el 15/12/2017 17:06:58
El problema es que estoy algo perdido desde que cambie a mysqli, y aunque estoy funcionando bien oculto error php que no se soluionar.

El error solo lo da cuado no existe el mail en mi tabla:
Error "Trying to get property of non-object"

Ejemplo funcion
1
2
3
4
5
6
7
8
9
10
function obtener_nombre_email($mail) {
	$db = new Conexion();
	$sql = 'select nombre FROM usuarios WHERE mail="'.$mail.'" limit 1';
	$result = $db->query($sql);
	$row=$result->fetch_object();
	$resultado=$row->campo; //ojo, va el nombre
	return $resultado;
	$result->free();
 
}

Cuando llamo a la función todo va bien, solo falla si el mail a buscar no esta guradado en la base de datos, cosa que pasa en repetidas ocasiones. Me costo mucho llegar a esta adaptación de la función y cuando ya parecía tenía una manera lógica, nuevo fallo, y este me supera.

Espero podáis soltar algún error en la función, estoy algo desesperado.
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
sin imagen de perfil
Val: 100
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

función php mysqli, error property si no hay datos

Publicado por Juan (43 intervenciones) el 15/12/2017 17:26:35
Buenas Arenas

Por lo que dices es un problema de retorno. Deberías comprobar que el fetch_object() trae datos, es decir, probablemente deberías comprobar si tu variable $result, quizás sería bueno que usarás un while, más o menos como nos muestra en la documentación que puedes seguir en esta url: http://php.net/manual/es/mysqli-result.fetch-object.php

Y claro lo ideal sería que $resultado fuera un array o algo similar.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

función php mysqli, error property si no hay datos

Publicado por Arenas (3 intervenciones) el 15/12/2017 17:35:40
Perfecto Juan,

La solución más sencilla, he probado con una función tipo para coger cualquier valor y va sin error tal y como me comentas.
Mil gracias.

Pongo resultao por si resulta útil a otros, esta la uso muy regularmente, se me hace raro el whil para un resultado, pero si mato el error, bienvenido sea.....

1
2
3
4
5
6
7
8
9
10
11
12
function obtener_campo_tabla($campo,$tabla,$idcampo,$valorcampo) {
			$db = new Conexion();
			$sql = 'select '.$campo.' as campo FROM '.$tabla.' WHERE '.$idcampo.'="'.$valorcampo.'" limit 1';
			//print $sql;
			$result = $db->query($sql);
			while ($row = $result->fetch_assoc()) {
			$resultado=$row->campo; //ojo, va el nombre
			return $resultado;
		}
			$result->free();
 
			}
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