2

我正在尝试在我的 mysql 表中导入一个 csv 文件。这是我的代码:

<?

error_reporting(0);
mysql_connect("localhost","root","");
mysql_select_db("gerov");


$filename='test.csv';

$handle = fopen("$filename", "r");
while (($data = fgetcsv($handle, ",")) !== FALSE)
//foreach(fgetcsv($handle,",") as $data)
{
$import="INSERT into castigatori (id,cod,nume,oras,medalie) values('','$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($import) or die("mysql_error()");
print $import."<br>";
}
fclose($handle);
print "Import done";

?> 

导入就可以了,但前提是我在 csv 文件中的每个单词之间加了一个逗号。因此,如果我想插入 a,b,c,d 它只会在我将这些逗号放在它们之间时导入。我想在一个单独的单元格上写下这样的单词:abcd 而不必放置逗号并在单词之间制作一个制表符。如果我用制表符分隔单词,在我的 mysql 表中将显示如下:a ;b ;c ;d。谁能告诉我该怎么做才能正确插入它们?

4

2 回答 2

2

MySQL 提供 LOAD DATA INFILE。
检查http://dev.mysql.com/doc/refman/5.1/en/load-data.html
尤其:

    [{FIELDS | COLUMNS}
    [TERMINATED BY 'string']
    [[OPTIONALLY] ENCLOSED BY 'char']
    [ESCAPED BY 'char']
于 2012-07-04T14:09:24.083 回答
0

编辑

如果您希望分隔符为空格,则:

fgetcsv($handle, 0, " ")
于 2012-07-04T14:07:44.843 回答