Foros del Web » Programando para Internet » PHP »

fallo al insertar registros en la DB

Estas en el tema de fallo al insertar registros en la DB en el foro de PHP en Foros del Web. Hola Ya consigo colgar mis archivos en una carpeta del servidor, pero ahora me falla al insertar la ruta y el tipo de archivo en ...
  #1 (permalink)  
Antiguo 27/02/2008, 12:30
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
fallo al insertar registros en la DB

Hola

Ya consigo colgar mis archivos en una carpeta del servidor, pero ahora me falla al insertar la ruta y el tipo de archivo en la DB

el codigo lo he complementado asi:


Código PHP:

<?php 
if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
    
    
     
// me verifica haya sido cargado el archivo 
        
$ruta_destino "../cevit/archivos/";
        if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$ruta_destino $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
                        

// Aqui es donde tendre que insertar en la BD la variable $_FILES['fichero']['name']



mysql_connect('localhost','user',9999)or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());


$query "INSERT INTO archivos 
                VALUES (0, '.$_FILES['fichero']['name'].','.$_FILES['fichero']['type'].')"
;
                
mysql_query($query) or die(mysql_error());
                echo 
"El archivo '.$_FILES['fichero']['name'].' ha sido registrado en la base de datos de manera satisfactoria.<br />";
                
    


                     
        } 
    } 
 
// A continuación el formulario 
}
?>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file"> 
    <input name="submit" type="submit" value="Upload!">  
</form> </body>
tengo 3 campos en la DB que son

id auto_increment primary key
ruta varchar 100
tipo varchar 50

Gracias.
  #2 (permalink)  
Antiguo 27/02/2008, 12:42
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Re: fallo al insertar registros en la DB

de q manera t falla q inserta??? me darias un ejemplo?
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #3 (permalink)  
Antiguo 27/02/2008, 12:45
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Re: fallo al insertar registros en la DB

este es el error que me arroja:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Inetpub\vhosts\tuboolar-web.com\httpdocs\cevit\subir_archivos.php on line 25
y la linea 25 es:

VALUES (0, '.$_FILES['fichero']['name'].','.$_FILES['fichero']['type'].')";

Gracias
  #4 (permalink)  
Antiguo 27/02/2008, 13:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: fallo al insertar registros en la DB

Tu query esta mal:
Código PHP:
$query "INSERT INTO archivos VALUES (0, '".$_FILES['fichero']['name']."','".$_FILES['fichero']['type']."')"
Saludos.
  #5 (permalink)  
Antiguo 27/02/2008, 14:53
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Re: fallo al insertar registros en la DB

Gracias, muchas gracias GatorV

Ya me funciona toda la aplicacion, desde cargar el archivo hasta visualizarlo y descargarlo si quiero, pasando por paginar la consulta a base de datos con paginator, para crear el enlace de descarga.

Gracias de verdad.

Me gustaria hacer un post sobre la aplicacion completa si te iteresa, para que la gente pueda cogerla y adaptarla, pero seguro que me ocupa mas que los caracteres que se pueden escribir en la ventana, como puedo hacerte llegar toda la aplicacion bien explicada.

Gracias de nuevo
  #6 (permalink)  
Antiguo 27/02/2008, 15:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: fallo al insertar registros en la DB

Puedes publicarla en varios posts juntos, solo asegurate de en el titulo poner APORTE: y el titulo del mensaje.

Saludos.
  #7 (permalink)  
Antiguo 27/02/2008, 15:45
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Re: fallo al insertar registros en la DB

Gracias, Lo hare,

aunque la aplicacion no es tan robusta como pensaba, he intentado colgar un archivo de 9 MB y me ha dado el error:

Error CGI
La aplicación CGI especificada puede comportarse de forma anormal si no recibe un conjunto completo de encabezados HTTP.

creo que tiene que ver con el tiempo de espera de ejecucion del script que sube los archivos al web pero no se como modificarlo,el script que procesa la carga del archivo quedo asi:

Código PHP:

<?php 
if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
    
    
     
// me verifica haya sido cargado el archivo 
        
$ruta_destino "../cevit/archivos/";
        if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$ruta_destino $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
                        

// Aqui es donde tendre que insertar en la BD la variable $_FILES['fichero']['name']



mysql_connect('localhost','User','9999')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

$query "INSERT INTO archivos VALUES (0, '".$_FILES['fichero']['name']."','".$_FILES['fichero']['type']."')";

                
mysql_query($query) or die(mysql_error());
                echo 
"El archivo '".$_FILES['fichero']['name']."' ha sido registrado de manera satisfactoria.<br />";
                
    


                     
        } 
    } 
 
// A continuación el formulario 
}
?>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file"> 
    <input name="submit" type="submit" value="Upload!">  
</form> </body>

Gracias
  #8 (permalink)  
Antiguo 27/02/2008, 15:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: fallo al insertar registros en la DB

Revisa esta FAQ.

Saludos.
  #9 (permalink)  
Antiguo 27/02/2008, 16:01
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Re: fallo al insertar registros en la DB

Gracias Gator V

pero yo no quiero guardar los archivos en la DB
los estoy guardando en una carpeta de mi web,
y en el host que uso no tengo acceso al php.ini ni nada similar
Gracias.
  #10 (permalink)  
Antiguo 27/02/2008, 16:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: fallo al insertar registros en la DB

Omite la parte de almacenar en la base de datos, y enfocate a la configuración de PHP, es lo que debes de modificar para poder subir archivos de tamaño mas grande:

Cita:
file_uploads = On // en On

max_execution_time = 120 // los segundos que consideren

max_input_time = 120 // los segundos que consideren

memory_limit = 16M // por lo regular el mismo tamaño del archivo a subir o quizas mas

upload_tmp_dir = /xyz // su directorio temporal con permisos de R/W

post_max_size = 10M // el tamaño maximo de su archivo a subir

upload_max_filesize = 10M // el tamaño maximo de su archivo a subir
Saludos.
  #11 (permalink)  
Antiguo 27/02/2008, 17:19
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Re: fallo al insertar registros en la DB

pero estos son parametros del php.ini creo
si es asi no tengo acceso, al php.ini
podria hacer los cambios desde el web mediante codigo?
  #12 (permalink)  
Antiguo 27/02/2008, 17:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: fallo al insertar registros en la DB

Lamentablemente no se puede, hay unos que si se puede usando la función ini_set, pero los otros no son modificables, por lo que tendras que contactar a tu hosting para que los hagan.

Saludos.
  #13 (permalink)  
Antiguo 27/02/2008, 17:52
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Re: fallo al insertar registros en la DB

intentare que lo cambien los del hosting, espero lo hagan, son unos jodidos para cambioar algo

Voy a pulir un poco la palicacion y la preparare para enviarla en varios post.

Este foro, ya te lo habran dicho y no es por pelotear, pero es muy bueno y dinamico, y aparece en cualquier busqueda sobre php que se haga en google, estais por todas partes, Y con soluciones
En Hora buena, tratare de ayudar y compartir todo lo que sepa

Gracias.
  #14 (permalink)  
Antiguo 27/02/2008, 20:08
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Re: fallo al insertar registros en la DB

Gracias GatorV, en cuanto pula la aplicacion la colgare

una cosa mas, como se fuerza la descarga de un archivo en vez de su visualizacion en el browser
uso este enlace para que me salga la ruta almacenada en la DB

echo "<tr><div align=center><a href=archivos/$row[ruta]>Descargar</a></div>";
donde
archivos/$row[ruta] es el enlace que me hace que los archivos se visualicen en vez de forzar su descarga
Alguien sabria, o un enlace a informacion
Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:17.