【发布时间】:2014-12-31 09:50:23
【问题描述】:
我正在将 CSV 文件中的记录插入 MySQL 表;如果任何记录已经存在,则更新该记录并插入其他记录,如果记录不匹配,则插入所有记录。
这是我的代码
<?php
$connect = mysql_connect('localhost','root','root');
if (!$connect) {
die('Could not connect to MySQL: ' . mysql_error());
}
$cid =mysql_select_db('bizin490_devcredit',$connect);
define('CSV_PATH', '/home/ubc/Documents/');
$csv_file = CSV_PATH . "test.csv";
$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['name'] = $csv_array[0];
$insert_csv['email'] = $csv_array[1];
$query = mysql_query("select name from test where name='" . $insert_csv['name'] . "'");
$count = mysql_num_rows($query);
if ($count == 0) {
$query = "INSERT INTO test(name,email)VALUES('" . $insert_csv['name'] . "','" . $insert_csv['email'] . "')";
$n = mysql_query($query, $connect);
} else {
$sql = "update test set email='".$insert_csv['email']."'";
//echo "<pre>";print_r($sql);
$qu = mysql_query($sql);
echo "<pre>";print_r($_POST);
}
$i++;
//die;
}
fclose($csvfile);
echo "File data successfully imported to database!!";
mysql_close($connect);
?>
【问题讨论】:
-
你有什么问题???
-
我的问题是,当它更新记录时,它会使更新的文件在数据库中停止
-
$insert_csv['email'] 可能为空
-
是的,但是我如何传递值你可以在我的代码中看到。
-
并且 LOAD DATA INFILE 通过
[REPLACE | IGNORE]提供了该功能