Almacenamiento de objetos binarios en MySQL

Un tema interesante en Mysql es usar la base de datos para guardar además de datos de tipo texto datos binarios como por ejemplo código html o imágenes. De esta forma se pueden almacenar completamente en la base de datos todos los elementos necesarios para construir un web-site.

CREATE TABLE binary_data (
id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
description CHAR(50),
bin_data LONGBLOB,
filename CHAR(50),
filesize CHAR(50),
filetype CHAR(50)
);

El siguiente script puede usarse para insertar objetos binarios en la base de datos desde un browser. Notar que se usa el tag input type=”file” de un form html para subir un archivo.


Store binary data into SQL Database

< ?php if ($submit) { //codigo que se ejecuta si se presiono el botón submit MYSQL_CONNECT( "localhost", "root", "password"); mysql_select_db( "binary_data"); $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data))); $result=MYSQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ". "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_d ata_type')"); $id= mysql_insert_id(); print "

Database ID: $id«;
MYSQL_CLOSE();
} else {
// sino mostrar el formulario para nuevos datos:
?>




File to upload/store in database:

< ?php } ?>

Notar el uso de la variable predefinida $PHP_SELF que tiene el nombre del script de esta forma el formulario se llama a si mismo independientemente del nombre que se le ponga al archivo.

Fuente: Documento Generación de web sites dinámicos usando PHP