![sin imagen de perfil sin imagen de perfil](/img/anonymouse.png)
La he vuelto a liar, while($row = $query->fetch(PDO::FETCH_OBJ))
Publicado por Sergio (26 intervenciones) el 29/06/2017 13:19:33
Siguiendo las recomendaciones de un usuario, he cambiado todo el codigo de acceso de login y ahora esta desde un Class, si ejecuto el codigo a si, para hacer la prueba; echo $row->email; devuelve el valor bien por consola
pero con este codigo me devuelve el siguiente error:
1<br />
<b>Fatal error</b>: Uncaught Error: Call to a member function fetch() on null in /opt/lampp/htdocs/db_php/class-db.php:24
Stack trace:
#0 /opt/lampp/htdocs/db_php/inicio-sesion.php(7): Conexion->login()
#1 {main}
thrown in <b>/opt/lampp/htdocs/db_php/class-db.php</b> on line <b>24</b><br />
¿Alguna sugerencia ?
Solucionado era cambiando $query = null; al final antes del ultimo }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public function login(){
try{
$email = $_POST['email'];
$pass = $_POST['pass'];
$query = $this->prepare('SELECT * FROM `Alta_Cliente` WHERE `email`= ? LIMIT 1');
$query->execute(array($email));
while($row = $query->fetch(PDO::FETCH_OBJ)) {
if ($row == true){
echo $row->email;
$query = null;
}
}
}catch(PDOException $e ){
echo "Error: ".$e;
}
}
pero con este codigo me devuelve el siguiente error:
1<br />
<b>Fatal error</b>: Uncaught Error: Call to a member function fetch() on null in /opt/lampp/htdocs/db_php/class-db.php:24
Stack trace:
#0 /opt/lampp/htdocs/db_php/inicio-sesion.php(7): Conexion->login()
#1 {main}
thrown in <b>/opt/lampp/htdocs/db_php/class-db.php</b> on line <b>24</b><br />
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
public function login(){
try{
$email = $_POST['email'];
$pass = $_POST['pass'];
$query = $this->prepare('SELECT * FROM `Alta_Cliente` WHERE `email`= ? LIMIT 1');
$query->execute(array($email));
while($row = $query->fetch(PDO::FETCH_OBJ)) {
/*its getting data in line.And its an object*/
if ($row == true){
$_SESSION['id_cliente'] = $row->ID_Cliente;
$_SESSION['nombre'] = $row->nombre;
$_SESSION['apellidos'] = $row->apellidos;
$_SESSION['email'] = $row->email;
//echo $row->email;
if (password_verify($pass, $row->pass)){
echo 1;
}else {
echo 2;
}
$query = null;
}
}
}catch(PDOException $e ){
echo "Error: ".$e;
}
}
¿Alguna sugerencia ?
Solucionado era cambiando $query = null; al final antes del ultimo }
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0