
Problema al llamar a funcion dentro de clase (PDO y MVC)
Publicado por Michael (3 intervenciones) el 23/04/2018 03:12:00
Hola, soy nuevo en este foro y en realidad vengo en busca de ayuda, ya que no he podido hacer funcionar mi codigo :(
Estoy realizando una pequeña aplicación para practicar el estilo Modelo Vista Controlador.
El problema surge al abrir el archivo index.php, me arroja un error 500 y en el error_log de php dice esto:
[23-Apr-2018 03:14:13 Europe/Berlin] PHP Notice: Undefined variable: con in /Applications/MAMP/htdocs/prueba/modelo/class.consultas.php on line 6
[23-Apr-2018 03:14:13 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function query() on null in /Applications/MAMP/htdocs/prueba/modelo/class.consultas.php:6
Stack trace:
#0 /Applications/MAMP/htdocs/prueba/controlador/cargar.php(4): Consultas->traerProductos()
#1 /Applications/MAMP/htdocs/prueba/index.php(6): cargar()
#2 {main}
thrown in /Applications/MAMP/htdocs/prueba/modelo/class.consultas.php on line 6
He probado con el codigo de la consulta fuera de la función y la clase y funciona perfectamente.
Codigo de archivos:
index.php
modelo/conexion.php
modelo/class.consultas.php
controlador/cargar.php
PD: adjunto fotos del codigo igual.. Saludos y gracias!
Estoy realizando una pequeña aplicación para practicar el estilo Modelo Vista Controlador.
El problema surge al abrir el archivo index.php, me arroja un error 500 y en el error_log de php dice esto:
[23-Apr-2018 03:14:13 Europe/Berlin] PHP Notice: Undefined variable: con in /Applications/MAMP/htdocs/prueba/modelo/class.consultas.php on line 6
[23-Apr-2018 03:14:13 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function query() on null in /Applications/MAMP/htdocs/prueba/modelo/class.consultas.php:6
Stack trace:
#0 /Applications/MAMP/htdocs/prueba/controlador/cargar.php(4): Consultas->traerProductos()
#1 /Applications/MAMP/htdocs/prueba/index.php(6): cargar()
#2 {main}
thrown in /Applications/MAMP/htdocs/prueba/modelo/class.consultas.php on line 6
He probado con el codigo de la consulta fuera de la función y la clase y funciona perfectamente.
Codigo de archivos:
index.php
1
2
3
4
5
6
7
<?php
require_once 'modelo/conexion.php';
require_once 'modelo/class.consultas.php';
require_once 'controlador/cargar.php';
cargar();
?>
modelo/conexion.php
1
2
3
4
5
6
7
<?php
try{
$con = new PDO('mysql:hostname=localhost;dbname=pedidos','root','root');
} catch (PDOException $e){
echo "Error!" . $e->getMessage(). "<br>";
die();
}
modelo/class.consultas.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
class Consultas{
public function traerProductos(){
$stmt = $con->query("SELECT * FROM productos");
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $fila) {
return $fila;
}
}
}
?>
controlador/cargar.php
1
2
3
4
5
6
7
8
9
<?php
function cargar() {
$consultas = new Consultas();
$rows = $consultas->traerProductos();
foreach ($rows as $row) {
echo $row['nombre']."<br>";
}
}
?>
PD: adjunto fotos del codigo igual.. Saludos y gracias!
Valora esta pregunta


0