Insertar imagen en base de datos con PDO

En esta entrada ademas de explicar como se inserta una imagen en la base de datos con PDO, dejo el codigo fuente, para que si lo necessitas sea solo copiar e pegar

Si realmente quieres aprender a programar, en este blog tengo algunos cursos que te van ayudar, como por ejemplo:


Ademas tengo varios ejemplos en la seccion de codigos los cuales te puden hacer ahorrar algun tiempo


...

Formulario de envio


Para hacermos el envio de la imagen tenemos que tener un formmulario onde vamos a buscar la imagen a subir

El formulario debe ser del type="multipart/form-data"

Como dice el curso de HTML este atributo sirve para subir cualcuer tipo de ficheros, o sea podemos subir una imagen, pero tambien un fichero pdf o un fichero excell etc

Ejemplo del codigo del formulario

El formulario esta constituido por un input tipo text onde pondremos el nombre de la imagen, e otro del tipo file onde va la imagen

Tiene un button de envio, y como he dicho antes tiene un atributo multipart/form-data para el envio de ficheros del tipo file

<div class="card-body">
<form action="" method="post" enctype="multipart/form-data">
<div class=" col mb-6">
<label for="titulo" class="form-label">Titulo</label>
<input type="text" class="form-control form-control-sm" name="txttitulo" id=""aria-describedby="helpId" placeholder="titulo" required>
</div>
<div class="mb-3">
<label for="" class="form-label">imagen</label>
<input type="file" class="form-control" name="txtImagen" id="" placeholder=""aria-describedby="fileHelpId">
</div>
<button type="submit" class="btn btn-success">Agregar</button>
</form>
</div>



La recepcion


Al hacer clic en el button se hace un envio por lo metodo POST

Este envio sera recepcionado en la pagina que le indiquemos en el atributo action, si lo dejamos en blanco, la recepcion sera en la propria pagina

El seguiente paso es recepcionar los datos para seren enviados a la base de datos, asi que lo que viene por el metodo POST lo vamos a guardar en variables

Codigo de ejemplo de la recepcion


 <?php
 if ($_POST) {
     $titulo = (isset($_POST['txttitulo'])) ? $_POST['txttitulo'] : "";
     $imagen = (isset($_FILES['txtImagen']['name'])) ? $_FILES['txtImagen']['name'] : "";
 }
 ?>



El envio

Despues de tenermos recepcionado los datos de la imagen, hay que enviar esos datos a la base de datos

Tenemos entonces que crear una sentencia de envio con INSERT INTO

Para este ejemplo e como la base de datos solo tiene dos campos el titulo e la imagen lo hariamos de la seguinte forma

Ejemplo del envio


        $sql = ("INSERT INTO datatable(titulo,imagen)
        VALUES (:titulo,:imagen");
       $stmt = $pdo->prepare($sql);
       $stmt->bindParam(':titulo', $titulo);
       $stmt->bindParam(':imagen', $imagen);
       $stmt->execute();
    






Publicar un comentario

0 Comentarios