Cómo insertar datos del archivo de texto en la base de datos una palabra por fila
Frecuentes
Visto 1,079 veces
5 Respuestas
2
Suponiendo que las comas sean siempre el separador de valores, ni siquiera necesita PHP.
echa un vistazo a la página http://dev.mysql.com/doc/refman/5.0/en/load-data.html
Un ejemplo con el que puedes empezar es
mysql> LOAD DATA INFILE 'C:\path\data.txt' INTO TABLE db2.my_table;
Respondido el 12 de junio de 12 a las 20:06
Sí, esto puede ser bastante complicado para el novato. Aunque funciona muy bien - Ryan
Sí, pero creo que al menos podría tener la TERMINATED BY ','
ya que ella está trabajando con un CSV
archivo - user745235
porque entonces podrías simplemente json_decode($a,true) y ahora es una matriz... foreach($arr as $b) mysql_query(INSERT into.....) - Ryan
1
Depende de qué tan grande sea el archivo Text.txt, pero si es pequeño, puede hacerlo así:
<?php
$text = file_get_contents('Test.txt');
$arrayOfTxt = explode(',',$text);
foreach($arrayOfTxt as $value){
//Insert trim($value)
}
?>
Respondido el 12 de junio de 12 a las 20:06
1
mira el php file_get_contents();
función.
http://php.net/manual/en/function.file-get-contents.php
mira el php explode();
función.
http://php.net/manual/en/function.explode.php
Esto colocará su cadena en una matriz que luego puede insertar en su base de datos.
Puedes ejecutar un MySQL INSERT
consulta usando el mysqli_*
funciones en php.
http://php.net/manual/en/mysqli.query.php
Respondido el 12 de junio de 12 a las 20:06
Lo hice, tu respuesta es buena y con fuentes, lo que es importante. ;) - usuario745235
0
Si no me equivoco, puedes hacerlo con explotar
$file = file_get_contents('file.txt');
$var = explode(",", $file);
La $var
variable será una matriz que contiene, en este caso, 4 posiciones (0,1,2, 3) con this('abc','def','ghi','jkl').
No, puedes hacer un foreach
insertando los valores en su tabla:
foreach($var as $x)
{
//YOUR INSERT GOES HERE. PASSING THE $x TO YOUR QUERY
}
Simplemente complementando la respuesta de Breland, ¿también podría hacer esto directamente con MySQL de esta manera?
LOAD DATA INFILE '/test.txt' INTO TABLE test TERMINATED BY ','
Y si es necesario, puedes agregar esto: LINES STARTING BY 'xxx'
para definir desde dónde comenzará la inserción. Es útil en caso de que quiera evitar algunas líneas en su archivo.
Respondido el 12 de junio de 12 a las 20:06
0
$file = fopen('test.txt', 'r');
$csv_array = fgetcsv($file);
foreach ($csv_array as $csv_data){
//Do your insertion code here.
}
Respondido el 12 de junio de 12 a las 20:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php mysql or haz tu propia pregunta.
Sí, lo hay, pero ¿qué estás tratando de lograr? ¿Esto es tarea? - afuzzyllama
No... Sólo quiero saber. ¿No puedo? - ThanaDaray
La sugerencia es esta: abra el archivo: lea el archivo, analice el contenido, inserte los registros. - Randy
Solo quiero aprender a insertar datos desde un archivo de texto usando PHP - ThanaDaray
esto es realmente trivial - Ryan