Foros del Web » Programando para Internet » PHP »

Fallo al cargar archivos en BD

Estas en el tema de Fallo al cargar archivos en BD en el foro de PHP en Foros del Web. Buenas! Tengo el siguiente problema, estoy intentando cargar un archivo por PHP en una base de datos de MySQL, el Script es el siguiente: $server ...
  #1 (permalink)  
Antiguo 12/06/2013, 01:02
Avatar de hellsingstq  
Fecha de Ingreso: junio-2013
Ubicación: Madrid
Mensajes: 12
Antigüedad: 10 años, 11 meses
Puntos: 0
Exclamación Fallo al cargar archivos en BD

Buenas! Tengo el siguiente problema, estoy intentando cargar un archivo por PHP en una base de datos de MySQL, el Script es el siguiente:

$server = 'localhost';
$user = 'xxx';
$passwort = 'xxx';
$database = 'my_db';
$file = (isset($_FILES['file']) ? $_FILES['file'] : NULL);
$verbindung = mysql_connect($server, $user, $passwort) or die ("Keine Verbindung möglich");

if($verbindung){
$db= mysql_select_db($database) or die ("Die Datenbank existiert nicht");
$sql = "LOAD DATA INFILE '$file'
INTO TABLE students
FIELDS TERMINATED BY ','
ENCLOSED BY ''
LINES TERMINATED BY '\n' ";
echo mysql_error();
if($sql){
$ergebnis = mysql_query($sql);
if($ergebnis){
echo "Datas written in table $ergebnis . <br>";

}
else
{
echo "Failed to write Datas into table";
}

echo "<table border='1'>";
echo "<tr>
<th>Number</th>
<th>Name</th>
<th>Surname</th>
<th>Teacher</th>
<th>Classname</th> </tr>";
$select_data = "Select * from `students`";
$select_data = mysql_query ("Select * from `students`");
while($row = mysql_fetch_row($select_data))
{
// Print out the contents of each row into a table
echo "<tr><td>";
echo $row[0];
echo "</td><td>";
echo $row[1];
echo "</td><td>";
echo $row[2];
echo "</td><td>";
echo $row[3];
echo "</td><td>";
echo $row[4];
echo "</td></tr>";
}

echo "</table>";
}

}
mysql_close($verbindung);
?>


El codigo de la pagina web en la que esta el formulario es el siguiente:


<form action=csvimport07.php method="post" enctype="multipart/form-data">
<table>
<tr><td>Select the file to import:</td><td><input name="csv" type="file" id="csv"/>
</table>
<i>*Note: The CSV file must have the following format: ;Name;Surname;y/n(is he/she a teacher?);Classname;</i><br><br>
<input type="Submit" name="Submit" value="Submit" />
</form>


Y el error que me sale una vez selecciono el archivo y lo subo es el siguiente:

Failed to write Datas into table

Agradeceria que me echarais una mano diciendome los fallos que tengo puesto que llevo dandole vueltas una semana al script y no encuentro solucion...Gracias!
  #2 (permalink)  
Antiguo 12/06/2013, 02:00
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Fallo al cargar archivos en BD

Utiliza codigo como el siguienta para saber qué falla:

$ergebnis = mysql_query($sql) or die(mysql_error());
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 12/06/2013, 02:02
Avatar de hellsingstq  
Fecha de Ingreso: junio-2013
Ubicación: Madrid
Mensajes: 12
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Fallo al cargar archivos en BD

Me da el siguiente fallo:

Notice: Array to string conversion in C:\xampp\htdocs\xampp\cert\csvimport07.php on line 16
File 'C:\xampp\mysql\data\certifications\Array' not found (Errcode: 2)
  #4 (permalink)  
Antiguo 12/06/2013, 12:56
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Fallo al cargar archivos en BD

Significa que lo que estás considerando como el nombre del archivo es en realidad un array, el nombre del archivo que quieres importar no existe y luego todo falla.
Debes utilizar $_FILES['userfile']['name'];

Código PHP:
Ver original
  1. El contenido de $_FILES del formulario de ejemplo es el siguiente. Tenga en cuenta que esto asume la utilización del nombre del archivo cargado userfile, tal como se utiliza en el script de ejemplo anterior. Este puede ser cualquier nombre.
  2.  
  3. $_FILES['userfile']['name']
  4.  
  5.     El nombre original del archivo en la máquina cliente.
  6. $_FILES['userfile']['type']
  7.  
  8.     El tipo mime del archivo, si el navegador proporciona esta información. Un ejemplo podría ser "image/gif". Este tipo mime, sin embargo no se verifica en el lado de PHP y por lo tanto no se garantiza su valor.
  9. $_FILES['userfile']['size']
  10.  
  11.     El tamaño, en bytes, del archivo subido.
  12. $_FILES['userfile']['tmp_name']
  13.  
  14.     El nombre temporal del archivo en el cual se almacena el archivo cargado en el servidor.
  15. $_FILES['userfile']['error']
  16.  
  17.     El código de error asociado a esta carga de archivo. Este elemento fue añadido en PHP 4.2.0
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: mysql
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 07:18.