utilizando una tipo subir solo ruta para mostrar modificar imagenes imagen guardar eliminar ejemplo desde dato con php mysql image

php - una - ¿Puedo almacenar imágenes en MySQL



subir, mostrar, modificar y eliminar una imagen en mysql desde php (4)

Posibles duplicados:
Imágenes en MySQL
Almacenamiento de imágenes en MySQL

Intento desarrollar un sitio web donde los usuarios carguen sus imágenes como parte del registro. Quiero que para cada imagen, debe haber un pulgar creado con PHP (que no es tan difícil). Quiero guardar los pulgares (ya que son muy pequeños) en la base de datos y uso MySQL. (No quiero guardar los pulgares como archivos físicos en la unidad).
¿MySQL permite guardar y recuperar datos de imágenes y cómo lo hago? Si no es compatible con los datos de imagen, ¿hay alguna base de datos gratuita que lo haga? Estaré contento si se puede proporcionar un enlace.
Gracias.


Deberá guardar como blob, el tipo de datos LONGBLOB en mysql funcionará.

Ex:

CREATE TABLE ''test''.''pic'' ( ''idpic'' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ''caption'' VARCHAR(45) NOT NULL, ''img'' LONGBLOB NOT NULL, PRIMARY KEY (''idpic'') )

Como han dicho otros, es una mala práctica, pero se puede hacer. Sin embargo, no estoy seguro si este código se escalaría bien.


Necesitará almacenar la imagen en la base de datos como un BLOB.

querrá crear una columna llamada PHOTO en su tabla y configurarla como un mediumblob.

Entonces querrás obtenerlo del formulario como sigue:

$data = file_get_contents($_FILES[''photo''][''tmp_name'']);

y luego establecer la columna al valor en $ datos.

Por supuesto, esta es una mala práctica y es probable que desee almacenar el archivo en el sistema con un nombre que corresponda a la cuenta de los usuarios.


Puede almacenar imágenes en MySQL como blobs. Sin embargo, esto es problemático por un par de razones:

  • Las imágenes pueden ser más difíciles de manipular: primero debe recuperarlas de la base de datos antes de realizar operaciones masivas.
  • Excepto en casos muy raros donde toda la base de datos está almacenada en RAM, las bases de datos MySQL finalmente se almacenan en el disco. Esto significa que sus imágenes DB se convierten en blobs, se insertan en una base de datos y luego se almacenan en el disco; puede ahorrar una gran cantidad de sobrecarga simplemente almacenándolos en el disco.

En su lugar, considere actualizar su tabla para agregar un campo image_path. Por ejemplo:

ALTER TABLE `your_table` ADD COLUMN `image_path` varchar(1024)

A continuación, almacene sus imágenes en el disco y actualice la tabla con la ruta de la imagen. Cuando necesite usar las imágenes, recupérelas del disco utilizando la ruta especificada.

Un efecto secundario ventajoso de este enfoque es que las imágenes no necesariamente se almacenan en el disco; podría fácilmente almacenar una URL en lugar de una ruta de imagen, y recuperar imágenes desde cualquier ubicación conectada a Internet.


Sí, puede almacenar imágenes en la base de datos, pero no es aconsejable en mi opinión, y no es una práctica general.

Una práctica general es almacenar imágenes en directorios en el sistema de archivos y almacenar referencias a las imágenes en la base de datos. por ejemplo, la ruta a la imagen, el nombre de la imagen, etc. O, alternativamente, incluso puede almacenar imágenes en una red de distribución de contenido (CDN) o numerosos hosts en una gran extensión de territorio físico y almacenar referencias para acceder a esos recursos en la base de datos .

Las imágenes pueden ser bastante grandes, más de 1 MB. Y entonces, almacenar imágenes en una base de datos puede potencialmente cargar innecesariamente su base de datos y la red entre su base de datos y su servidor web si están en diferentes hosts.

He trabajado en startups, medianas empresas y grandes empresas de tecnología con más de 400 empleados. En mis 13 años de experiencia profesional, nunca he visto a nadie almacenar imágenes en una base de datos. Digo esto para apoyar la afirmación de que es una práctica poco común.