使用PHP将CSV文件数据插入并更新到MySQL表中
我正在将CSV文件中的记录插入MySQL表,若已有任何记录,则更新该记录并插入其他记录,若记录不匹配,则插入所有记录 这是我的密码使用PHP将CSV文件数据插入并更新到MySQL表中,php,mysql,csv,Php,Mysql,Csv,我正在将CSV文件中的记录插入MySQL表,若已有任何记录,则更新该记录并插入其他记录,若记录不匹配,则插入所有记录 这是我的密码 <?php $connect = mysql_connect('localhost', '', ''); if (!$connect) { die('Could not connect to MySQL: ' . mysql_error()); } $cid = mysql_select_db('test', $connect); define
<?php
$connect = mysql_connect('localhost', '', '');
if (!$connect) {
die('Could not connect to MySQL: ' . mysql_error());
}
$cid = mysql_select_db('test', $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 * from test");
$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);
$i++;
} else {
$query = mysql_query("select name from test where name='" . $insert_csv['name'] . "'");
while ($row = mysql_fetch_array($query)) {
if ($count) {
$sql = "update test set email='" . $insert_csv['email'] . "'";
$qu = mysql_query($sql);
} else {
$query = "INSERT INTO test(name,email)VALUES('" . $insert_csv['name'] . "','" . $insert_csv['email'] . "')";
$n = mysql_query($query, $connect);
$i++;
}
}
}
}
fclose($csvfile);
echo "File data successfully imported to database!!";
mysql_close($connect);
?>
使用下面的查询
INSERT INTO table (primkey, col2, col3) VALUES(1, 2, 3) ON DUPLICATE KEY UPDATE
col1=VALUES(1), col2=VALUES(2)
它的例子
这可能对你有帮助
您尝试了什么?从csv文件中删除重复项。。然后开始插入记录。我已经尝试过了,它只是插入记录而不是更新检查记录是否唯一或者不使用名称字段。如果是,则插入,否则更新。感谢您的帮助回答,它将插入记录并进行更新,但在更新记录时,它会使所有更新的字段为空。$sql=update test set email='$插入_csv[“电子邮件”];将上述查询替换为$sql=update测试集email='$插入_csv[“电子邮件”]。'其中name='$插入_csv['name'];
<?php
$connect = mysql_connect('localhost', '', '');
if (!$connect) {
die('Could not connect to MySQL: ' . mysql_error());
}
$cid = mysql_select_db('test', $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'] . "'";
$qu = mysql_query($sql);
}
$i++;
}
}
fclose($csvfile);
echo "File data successfully imported to database!!";
mysql_close($connect);
?>