Cargar Datos en base MySQL con PHP desde archivo de texto (script comentado)

zuperzombie
17 de Junio del 2004
Tengo el Siguiente problema:
Intento cargar datos en una tabla con un script php que yo mismo hice, pero no entiendo porque a la tabla no le carga absolutamente nada.
No me salen mensajes de error y aparentemente el script funciona, pero al consultar el contenido de la tabla no aparecen los datos que supuestamente se cargaron.
El scrip es el siguiente y está bien ampliamente comentado:

<?php
$username="mi_nombre_de_usario"; //Obviamente aquí va mi Nombre de Usuario
$password="mi_password"; //Obviamente aquí va mi password
$database="mi_base_de_datos"; //Idem con la Base de Datos
$tabla="mi_tabla"; //Idem con la Tabla
$archivotxt="mi_archivo.txt"; //Idem con el archivo que contiene los datos.
$db = mysql_connect("localhost", $username,$password); //Esta linea...
mysql_select_db($database,$db); //Y esta otra me conectan con la base de Datos
$row = 0; //Variable para contar cuantos Productos se Cargan en la Tabla
$handle = fopen ($archivotxt,"r"); //Abro el archivo que contiene la info a cargar en la tabla
//** Desde aquí hasta los proximos asteriscos se hace un loop...
//...leyendo el archivo TXT y carganlo la Info en la Tabla y...
//...Mostrando línea a línea el query que se realizó.
while ($data = fgetcsv ($handle, 1000, ",")) {
$query = "INSERT INTO $tabla (CODIGO, NOMBRE, PRECIO, STOCK, FOTO, LINKURL) VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]');";
@mysql_query($query, $db);
echo("<br>$query<br>");
$row++;
}
//**
fclose ($handle); //Cerramos el archivo TXT
mysql_close($db); //Cerramos la Conexión MySQL
echo "<br>Se cargaron $row productos<br>"; //Me informa Finalmente cuantos productos se cargaron.
?>

si alguien me puede ayudar, decirme que es lo que estoy haciendo mal, se los agradecería.


17 de Junio del 2004
bueno, claro que no te va a dar error si lo estas suprimiendo con el @, aparte que no estas usando un 'or die'. Yo te recomendaria que agregaras el 'or die()' metodo.

En tu query: '$data[5]');";

Tenes un punto y coma de mas (despues del $data[5]) ya lo viste?

Por el momento eso es lo que veo, tal vez te ayude

.

zuperzombie
17 de Junio del 2004
Ya solucioné el tema:
había un error en el nombre de la base de datos:
incluir "or die ()" me ayudó a detectarlo. Además aprendí que con @ antes de un comando se anula el mensaje de error.
Además la conección la hice solo a la base y no a la base y la tabla, no se si fue mejor pero andubo.
la línea quedó asi:
mysql_select_db($database) or die("<font color=red><b>No puedo abrir la Base de Datos $database</b></font>");

Mil Gracias por tu aporte...


17 de Junio del 2004
'Pa servirte

.

ZuperZombie
17 de Junio del 2004
Excelente tu aporte:
al agregar el método or die() me arroja en siguiente error:

Can't open Database Resource id #2

¿Me podrías aclarar si me reclama por el nombre de la tabla o el de la base de datos?

Desde ya gracias.