gpt4 book ai didi

php - 我可以更新记录(如果存在),如果不存在则将其插入单个查询中的多行吗?

转载 作者:可可西里 更新时间:2023-11-01 07:49:03 24 4
gpt4 key购买 nike

我正在尝试编写一个查询,以使用“内爆”以有效的方式插入一个包含许多值(比如 1000)的数组。这是代码。

$sql = array(); 
foreach( $return as $key=>$row ) {
$sql[] = '("'.mysql_real_escape_string($row['fullname']).'", '.$row['age'].','.$row['since'].','.'"'.mysql_real_escape_string($row['description']).'")';
}
mysql_query('INSERT INTO data (name, age, since, description) VALUES '.implode(',', $sql));

我的查询将记录数组插入到 data 表中。我想更改查询,以便它会更新记录(如果存在),否则会插入记录。

最佳答案

您可能想要的是“ON DUPLICATE KEY”的一个版本,它实际上允许您引用正在输入的数据。

INSERT INTO data (name, age, since, description) VALUES
("Bob", 23, "01-01-1980", "friend"),
("Bill", 33, "03-01-1980", "tall"),
("Jane", 43, "12-01-1980", "thin")
ON DUPLICATE KEY UPDATE age=VALUES(age),
since=VALUES(since),
description=VALUES(description);

希望在您阅读时不言自明?


$sql = array();   
foreach( $return as $key=>$row ) {
$sql[] = '("'.mysql_real_escape_string($row['fullname']).'", '.$row['age'].','.$row['since'].','.'"'.mysql_real_escape_string($row['description']).'")';
}
mysql_query('INSERT INTO data (name, age, since, description) VALUES '.implode(',', $sql). ' ON DUPLICATE KEY UPDATE age=VALUES(age), since=VALUES(since), description=VALUES(description);');

编辑,将其添加到上面的用户代码中。

关于php - 我可以更新记录(如果存在),如果不存在则将其插入单个查询中的多行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12136711/

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