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


How to insert data from text file in database one word per row

Test.text

abc,def,ghi,jkl,...

无论如何,是否可以将每个插入到数据库中的每一行?

1 abc
2 def
...

有什么建议吗?

假设逗号始终是值的分隔符,你甚至不需要 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;

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

<?php 
$text = file_get_contents('Test.txt');
$arrayOfTxt = explode(',',$text);
foreach($arrayOfTxt as $value){
    //Insert trim($value)
}
?>

看看 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 中的mysqli_*函数执行 MySQL INSERT查询。http://php.net/manual/en/mysqli.query.php

如果我

没记错的话,你可以用爆炸来做到这一点

$file = file_get_contents('file.txt');
$var = explode(",", $file);

$var变量将是一个数组,在本例中包含 4 个位置(0,1,2, 3),其中 this('abc'、'def'、'ghi'、'jkl')。

不,您可以在表上插入值foreach

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

只是补充布雷兰德的答案,你也可以像这样直接用MySQL做到这一点吗?

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

如有必要,您可以添加以下内容:LINES STARTING BY 'xxx'定义插入的开始位置。如果您想避免文件上的某些行,它很有用。

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