gpt4 book ai didi

php - 使用 PHP 将 CSV 上传到 MYSQL

转载 作者:行者123 更新时间:2023-11-29 11:37:51 25 4
gpt4 key购买 nike

嗨,我目前有这个 php 文件,每次触发时都会将 csv 数据导入到 mysql 数据库中,但是我希望它覆盖数据库中的当前数据,而不仅仅是每次触发时不断添加到其中。这是减去我的详细信息的文件:

<?php

//database connection details
$connect = mysql_connect('mydetails','mydetails','mydetails');

if (!$connect) {
die('Could not connect to MySQL: ' . mysql_error());
}

//your database name
$cid =mysql_select_db('mydetails',$connect);

// path where your CSV file is located
define('CSV_PATH','myfile location');

// Name of your CSV file
$csv_file = CSV_PATH . "my file";


if (($handle = fopen($csv_file, "r")) !== FALSE) {
fgetcsv($handle);
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$col[$c] = $data[$c];
}

$col1 = $col[0];
$col2 = $col[1];
$col3 = $col[2];
$col4 = $col[3];

// SQL Query to insert data into DataBase
$query = "INSERT INTO orders(OrderNumber,OrderCustomer,OrderReqdQty,OrderStatus) VALUES('".$col1."','".$col2."','".$col3."','".$col4."')";
$s = mysql_query($query, $connect );
}
fclose($handle);
}

echo "File data successfully imported to database!!";
mysql_close($connect);
?>

最佳答案

看来您有唯一的 OrderNumber。向表添加正确的键并使用 ON DUPLICATE UPDATE 语法。

有关此主题的更多信息:http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

--- 编辑 ---首先,您需要在表中添加正确的唯一键:

ALTER TABLE orders add UNIQUE(OrderNumber);

此查询应添加唯一键,从现在开始,不可能出现重复的 OrderNumber。如果数据库中有任何内容,此查询将向您抛出正确的错误消息。如果您只是尝试添加具有相同 OrderNumber 的另一个条目,您也会受到错误消息的欢迎。

现在您可以使用如下内容修改脚本:

INSERT INTO orders(OrderNumber, OrderCustomer, OrderReqdQty, OrderStatus) VALUES('".$col1."','".$col2."','".$col3."','".$col4."') ON DUPLICATE KEY UPDATE OrderCustomer='".$col2."', OrderReqdQty='".$col3."', OrderStatus='".$col4."'";

然后每次在表中找到 OrderNumber 而不是抛出错误时,都会在这一行上执行 UPDATE。

关于php - 使用 PHP 将 CSV 上传到 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36304086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com