[Resuelto] Ayuda con POO no puedo ingresar registros en base mysql con pdo

Iniciado por Necronomicon.93, 28 Junio 2018, 23:33 PM

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

Necronomicon.93

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

Código (php) [Seleccionar]

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(){

$matriz=array();

$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);

}
}


Código (php) [Seleccionar]
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_titulo(htmlentities(addslashes($_POST['campo_titulo']), ENT_QUOTES));

$blog->set_fecha(date("Y-m-d H:i:s"));

$blog->set_comentario(htmlentities(addslashes($_POST['area_comentarios']), ENT_QUOTES));

$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!!

#!drvy

Linea 55 de tu archivo Manejo_Objetos.php, lo estas llamando así:

Código (php) [Seleccionar]
$this->$conexion->exec($sql);

Las propiedades en un método se llaman sin el $.

Código (php) [Seleccionar]
$this->conexion->exec($sql);

Saludos