hola a todos! estoy intentando hacer un blog con poo y la libreria pdo, puedo visualizar la pagina, pero no insertar registros.
Undefined variable: conexion in C:\xampp\htdocs\Web-Docs\ProjktBlog\ProjektoBlogPOO\Modelo\Manejo_Objetos.php on line 55
Fatal error: Uncaught Error: Cannot access empty property in C:\xampp\htdocs\Web-Docs\ProjktBlog\ProjektoBlogPOO\Modelo\Manejo_Objetos.php:55 Stack trace: #0 C:\xampp\htdocs\Web-Docs\ProjktBlog\ProjektoBlogPOO\Controlador\Transacciones.php(80): Manejo_Objetos->inserta_contenido(Object(Objeto_Blog)) #1 {main} thrown in C:\xampp\htdocs\Web-Docs\ProjktBlog\ProjektoBlogPOO\Modelo\Manejo_Objetos.php on line 55
include_once("Objeto_Blog.php");
class Manejo_Objetos {
private $conexion;
public function __construct($conexion){
$this->setConexion($conexion);
}
public function setConexion(PDO $conexion){
$this->conexion=$conexion;
}
public function orderbydate(){
$contador=0;
$resultado=$this->conexion->query("SELECT * FROM blog ORDER BY FECHA");
while ($registro=$resultado->fetch(PDO::FETCH_ASSOC)) {
$blog=new Objeto_Blog();
$blog->set_id($registro['id']);
$blog->set_titulo($registro['titulo']);
$blog->set_fecha($registro['fecha']);
$blog->set_comentario($registro['comentario']);
$blog->set_imagen($registro['imagen']);
$matriz[$contador]=$blog;
$contador++;
}
return $matriz;
}
public function inserta_contenido(Objeto_Blog $blog){
$sql="INSERT INTO blog (titulo, fecha, comentario, imagen) VALUES('" . $blog->get_titulo() . "','" . $blog->get_fecha() ."','" . $blog->get_comentario() ."','" . $blog->get_imagen() . "')";
$this->$conexion->exec($sql);
}
}
include_once("../Modelo/Objeto_Blog.php");
include_once("../Modelo/Manejo_Objetos.php");
try{
$miconexion=new PDO('mysql:host=localhost; dbname=pruebas', 'root', '');
$miconexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if($_FILES['imagen']['error'])
{
switch ($_FILES['imagen']['error']) {
case 1:
echo "el archivo excede el tamaño permitido por el servidor";
break;
case 2:
echo "el archivo excede el tamaño permitido";
break;
case 3:
echo "no se a enviado ningun archivo";
break;
}
} else {
echo "entrada subida correctamente";
if ((isset($_FILES['imagen']['name']) && ($_FILES['imagen']['error'] == UPLOAD_ERR_OK
))) {
$destino_ruta="../imagenes/";
move_uploaded_file($_FILES['imagen']['tmp_name'], $destino_ruta . $_FILES['imagen']['name']);
echo "el archivo" . $_FILES['imagen']['name'] . "se a subido correctamente";
} else {
echo "el archivo no se subio correctamente";
}
$Manejo_Objetos=new Manejo_Objetos($miconexion);
$blog=new Objeto_Blog();
$blog->set_fecha(date("Y-m-d H:i:s"));
$blog->set_imagen($_FILES['imagen']['name']);
$Manejo_Objetos->inserta_contenido($blog);
echo "<br>entrada de blog realizada con exito<br>";
}
} catch(Exception $e){
die("Error:" . $e->getMessage()); }
agradeceria cualquier ayuda!!
Linea 55 de tu archivo Manejo_Objetos.php, lo estas llamando así:
$this->$conexion->exec($sql);
Las propiedades en un método se llaman sin el $.
$this->conexion->exec($sql);
Saludos