【发布时间】:2013-12-27 21:49:12
【问题描述】:
我想用 php 将 csv 文件中的数据插入到我的 mysql 数据库中。但我不知道我做错了什么。
这是我的 php 代码
if ($_FILES[csv][size] > 0){
$csv_file = $_FILES[csv][tmp_name]; // Name of your CSV file
$csvfile = fopen($csv_file, 'r');
$theData = fgets($csvfile);
$i = 0;
while (!feof($csvfile)) {
$csv_data[] = fgets($csvfile, 1024);
$csv_array = explode(",", $csv_data[$i]);
$insert_csv = array();
$insert_csv['id'] = $csv_array[0];
$insert_csv['name'] = $csv_array[1];
$insert_csv['email'] = $csv_array[2];
if(!empty($insert_csv['email'])){
$query = "INSERT INTO contacts(id,name,email)
VALUES('','".$insert_csv['name']."','".$insert_csv['email']."')";
$n=mysqli_query($database->connection,$query);
}
$i++;
}
fclose($csvfile);
}
这是我的 csv 的样子。
id---- name ------- email
1 ---- user1--------bla@hotmail.com
2 ---- user2 --------blah
3------ user 3 ------ blah
当我运行这段代码时,我的 mysql 结果是
在电子邮件表中 = ##0.00 "TL")$# en 在我的名字表中 = 也 ##0.00 "TL")$#;
我做错了什么?
【问题讨论】:
-
不确定是否需要在 php 中进行所有循环和操作 - 为什么不使用
LOAD DATA INFILE的本机功能? dev.mysql.com/doc/refman/5.1/en/load-data.html 然后您可以先在您的数据库上测试该语句以确保它有效 -
@hans:这是你的csv文件格式吗?
-
不是真的我有一个 excel 文件。