使用 PHP 将数据从 CSV 导入 MySQL 表


import data from CSV into mysql table using php

我正在尝试在我的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,它只会在将它们之间放置这些逗号时才导入。我想像这样将单词写在一个单独的单元格上:a b c d,而不必加上逗号并在单词之间分隔制表符。如果我用制表符分隔写单词,在我的 mysql 表中将显示如下:a ;b ;c ;d。谁能告诉我该怎么做才能正确插入它们?

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']

编辑

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

fgetcsv($handle, 0, " ")