Cargar Datos en base MySQL con PHP desde archivo de texto (script comentado)
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.
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.
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
.
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
.
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...
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...
