如何从数据库中的文本文件中插入每行一个单词的数据

时间:2012-06-12 19:30:34

标签: php mysql

Test.text

abc,def,ghi,jkl,...

是否有可能将每一个插入数据库中的每一行?

1 abc
2 def
...

有什么建议吗?

5 个答案:

答案 0 :(得分:2)

假设逗号始终是值的分隔符,您甚至不需要PHP。

查看页面http://dev.mysql.com/doc/refman/5.0/en/load-data.html

您可以开始的一个例子是

mysql> LOAD DATA INFILE 'C:\path\data.txt' INTO TABLE db2.my_table;

答案 1 :(得分:1)

查看php file_get_contents();函数。 http://php.net/manual/en/function.file-get-contents.php

查看php explode();函数。 http://php.net/manual/en/function.explode.php

这会将您的字符串放入一个数组中,然后可以将其插入到数据库中。

您可以使用php中的INSERT函数执行MySQL mysqli_*查询。 http://php.net/manual/en/mysqli.query.php

答案 2 :(得分:1)

取决于Text.txt文件的大小,但如果它的小,那么你可以这样做:

<?php 
$text = file_get_contents('Test.txt');
$arrayOfTxt = explode(',',$text);

foreach($arrayOfTxt as $value){
    //Insert trim($value)
}
?>

答案 3 :(得分:0)

如果我没错,可以使用explode

执行此操作
$file = file_get_contents('file.txt');
$var = explode(",", $file);

$var变量将是一个数组,在这种情况下,包含4个位置(0,1,2,3)('abc','def','ghi','jkl')

不,你可以foreach在你的桌子上插入值:

foreach($var as $x)
{
//YOUR INSERT GOES HERE. PASSING THE $x TO YOUR QUERY
}

只是补充Breland的答案,你也可以直接用MySQL这样做吗?

LOAD DATA INFILE '/test.txt' INTO TABLE test TERMINATED BY ','

如有必要,您可以添加:LINES STARTING BY 'xxx'来定义插入的开始位置。如果您想避免文件中的某些行,这非常有用。

答案 4 :(得分:0)

$file = fopen('test.txt', 'r');   
$csv_array = fgetcsv($file);   
foreach ($csv_array as $csv_data){
            //Do your insertion code here.

 }