使用php将数据从CSV导入mysql表

时间:2012-07-04 13:59:04

标签: php mysql csv

我正在尝试在我的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,而不必使用逗号并在单词之间分隔制表符。如果我用tab分隔的单词写,我的mysql表中将显示如下:a; b; c; d。谁能告诉我怎么做才能正确插入它们?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

修改

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

fgetcsv($handle, 0, " ")