php - 使用更新从 CSV 导入到 MySQL

标签 php mysql csv import

我有这个 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/

相关文章:

PHP - 启用错误堆栈跟踪

mysql - 无法将数据库复制到远程主机。指定的 key 太长;最大 key 长度为 767 字节

python - 如何从 CSV 模块使用 Python 迭代器

ios - 快速解析 CSV 文件

php - 在 php 中读取数据的 mysql 或 csv 哪个好

php - 等于 SQL 的 %like% 但在 PHP 中

php - 我如何判断一段流量是不是 Facebook?

mysql - 如何根据现有列计算列值

PHP 的 mail() : What are potential issues to watch out for?

mysql - SQL中如何统计多列出现的次数