Cómo insertar datos del archivo de texto en la base de datos una palabra por fila

texto.de.prueba

abc,def,ghi,jkl,...

¿Es posible insertar cada uno en cada fila en la base de datos?

1 abc
2 def
...

¿Alguna sugerencia?

preguntado el 12 de junio de 12 a las 20:06

Sí, lo hay, pero ¿qué estás tratando de lograr? ¿Esto es tarea? -

No... Sólo quiero saber. ¿No puedo? -

La sugerencia es esta: abra el archivo: lea el archivo, analice el contenido, inserte los registros. -

Solo quiero aprender a insertar datos desde un archivo de texto usando PHP -

esto es realmente trivial -

5 Respuestas

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

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

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

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

$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 or haz tu propia pregunta.