我有这个 php 代码,旨在将 csv 文件中的所有行和列作为记录导入到 mysql 表中。它成功地从 csv 插入名为“import_items”的 mysql 表但是如果我重新执行导入,它将插入重复的记录。我需要的只是在哪里适合查询更新,其中应该检查IF ITEM EXISTS in table name->更新值,IF NOT EXISTS..插入记录! p>
这是我的代码:
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
File to import:<br />
<input size='30' type='file' name='filename'>
<input type="submit" name="submit" value="Upload"></form>
<?php
require_once('connect_db.php');
//Upload File
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
//Import uploaded file to Database
$row = 1;
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
//Update Database Values
$import="insert into import_items (item_no,qty,actual_price,discount_price,difference_price,date) VALUES('".mysql_real_escape_string($data[0])."', '".mysql_real_escape_string($data[1])."', '".mysql_real_escape_string($data[2])."', '".mysql_real_escape_string($data[3])."', '".mysql_real_escape_string($data[4])."', '".$date = date('Y-m-d')."')";
mysql_query($import) or die(mysql_error());
}
fclose($handle);
}
}
?>
谢谢
最佳答案
查看 INSERT INTO ... ON DUPLICATE KEY UPDATE ...
语法。哦,并确保表中有一个主键,这几乎总是一个好主意。
关于php - 使用更新从 CSV 导入到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12479155/