gpt4 book ai didi

php - 使用更新插入查询将 .csv 值插入数据库

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

我有一个 .csv 文件,其中的数据被插入到数据库中,但我的代码有一个缺点,例如

如果我的 .csv 文件包含一行并将其插入到数据库中,那么要插入更多行,用户应该从 .csv 中删除第一行并放入新行值,然后它将插入其他重复的键条目作为我的数据库中的列有唯一的 key 。

我将.csv插入mysql的代码。

<?php
//db connection goes here
$csv_file="/var/www/html/141.csv";
$savefile="141.csv";
$handle = fopen($csv_file, "r");

$i=0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($i>0){
$import="INSERT into lead141(urn,phone)values('".addslashes($data[0])."','".addslashes($data[1])."')";
mysql_query($import) or die(mysql_error());
}
$i=1;
}

$test="select * from lead141
where phone in (select phone from dnc)";
$query=mysql_query($test);
$testing=count($query);
echo "matched rows".$testing;

?>

我的mysql lead141表结构

    CREATE TABLE `lead141` (
id int(100) NOT NULL AUTO_INCREMENT,
urn int(100) NOT NULL,
phone bigint(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `phone` (`phone`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1

我的 141.csv 文件

urn    phone
141 20134325
141 20985675

如果我运行代码 141.csv 插入数据库,但当用户在 141.csv 中添加新行时,用户应删除以前的行并向 141.csv 添加新行以进行插入。

我需要让我的代码能够将新值从 141.csv 插入到数据库,即使旧值存在于 .csv 中。我认为如果我放置更新语句然后插入,那么它就会成功。

我的逻辑正确吗?请帮忙

最佳答案

尝试使用INSERT ... ON DUPLICATE KEY UPDATE Syntax像这样:

$import="INSERT INTO lead141(urn,phone)values('".addslashes($data[0])."','".addslashes($data[1])."') ON DUPLICATE KEY UPDATE phone= '".addslashes($data[1])."'";

因为phone列是UNIQUE KEY

关于php - 使用更新插入查询将 .csv 值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24340966/

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