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

标签 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 ,而不必放置逗号并在单词之间使用制表符分隔。如果我用制表符分隔单词,在我的 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']

关于php - 使用php将数据从CSV导入到mysql表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11330562/

相关文章:

mysql - 如何在mysql中的日期中添加一年零两天

mysql - 如何确定 MySQL 表中行子集的大小

Python:查找和替换批处理 csv 文件中的字符串

python - 使用 python pandas 将 json 转换为 csv

python - Spark 环境中的 pandas.read_csv (IBM Bluemix)

php - Laravel 哪里没有

PHPStorm 禁用匿名函数括号前的空格

php - 与循环结果比较时,mysql结果重复

php - 请比较 Facebook Connect 与 Facebook (OpenID+Oauth)?

MySQL 用联合选择层次结构