Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2003, 16:41
Avatar de Pandragon
Pandragon
 
Fecha de Ingreso: abril-2003
Ubicación: Alicante - España
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
Manejo de datos BLOB con PHP y MySQL

Estoy intentando almacenar archivos en una base de datos mediante el uso de BLOB, para ello he creado una base en Mysql con la siguiente tabla:

CREATE TABLE `peliculas` (
`id` int(11) NOT NULL auto_increment,
`titulo` varchar(50) default NULL,
`imagen` mediumblob,
`tipo` varchar(50) default NULL,
`tamano` varchar(50) default NULL,
`enlace` varchar(50) default NULL,
`descargas` varchar(50) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM

El siguiente cuestionario:

Código:
<form enctype="multipart/form-data" action="guardar_archivo.php" method="post">
  <table border="0">
    <tr> 
      <td><strong>Titulo:</strong></td>
      <td><input type="text" name="titulo" size="50"></td>
    </tr>
    <tr> 
      <td><strong>Imagen:</strong></td>
      <td><input type="file" name="archivo" size="50"></td>
    </tr>
    <tr> 
      <td><strong>Tamaño:</strong></td>
      <td><input type="text" name="tamano" size="20"><strong>&nbsp;Mb</strong></td>
    </tr>
    <tr> 
      <td><strong>Enlace:</strong></td>
      <td><input type="text" name="enlace" size="100"></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td><input type="submit" value="Registrar"></td>
    </tr>
  </table>
</form>
Y con el siguiente script en php:

Código PHP:

<?php require_once('Connections/divXHispano.php'); ?>
<?php
mysql_select_db
($database_divXHispano$divXHispano);
$query_guardar_archivo "SELECT * FROM peliculas";
$guardar_archivo mysql_query($query_guardar_archivo$divXHispano) or die(mysql_error());
$row_guardar_archivo mysql_fetch_assoc($guardar_archivo);
$totalRows_guardar_archivo mysql_num_rows($guardar_archivo);
?>


<?php 
/* guardar_archivo.php */

$archivo$_FILES['archivo']['tmp_name'];
$tamanio$_FILES['archivo']['size'];
$tipo=$_FILES['archivo']['type'];
$nombre=$_FILES['archivo']['name'];
$titulo=$_POST['titulo'];
$tamano=$_POST['tamano'];
$enlace=$_POST['enlace'];

if ( 
$archivo != "none" )
{
$fp=fopen($archivo"rb");
$imagen=fread($fp,$tamanio);
$imagen=addslashes($imagen);
fclose($fp);

$qry="INSERT INTO peliculas VALUES
(0,'$titulo','$imagen','$tipo','$tamano','$enlace')"
;

mysql_query($qry);

if(
mysql_affected_rows($divXHispano)>0)
echo 
"Se ha guardado el archivo en la base de datos.";
else
echo 
"No se ha podido guardar el archivo en la base de datos.";
}
else
echo 
"No se ha podido subir el archivo al servidor.";
?>
</body>
</html>
<?php
mysql_free_result
($guardar_archivo);
?>
Pero introduzco los datos en el formulario, pincho en registrar y me comunica que No se ha podido guardar el archivo en la base de datos.

¿Tengo algun error en el código? ¿o tengo que definir algun dato mas?