gpt4 book ai didi

php - MySQL 上的多个 INSERT/UPDATE

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

我必须使用 ON DUPLICATE KEY 指令对一个动态字段和其他静态字段执行多次插入/更新。我有包含以下字段的“通知”表:

ID (BIGINT AUTOINCREMENT PRIMARY KEY), 
user (BIGINT UNIQUE),
creator (BIGINT UNIQUE),
type (TINYINT UNIQUE),
value (BIGINT UNIQUE),
date (INT),
readed (TINYINT),
erased (TINYINT).

我必须为每个用户插入/更新一行(ID 将通过查询提取),因此字段“user”的值将是动态的,其他是静态的。如何仅通过一个 MySQL 查询来执行此操作?

最佳答案

如果您可以使用 PDO,您可以构建查询并在添加所有记录后提交。

这是一个使用 beginTransaction 和 commit 的例子。

这会准备您的查询,然后遍历用户列表并分配每条记录。

循环后它提交/操作查询。

$dbc->beginTransaction();
$sql = 'INSERT INTO notifications (id,user,creator,type,value,date,readed,erased) '
. 'VALUES (:id,:user,:creator,:type,:value,:date,:readed,:erased) '
. 'ON DUPLICATE KEY UPDATE user=:user ';

$sth= $dbc->prepare( $sql );


foreach( $userlist as $user )
{
$sth->execute( array(
':id'=>$user['id'],
':user'=>$user['user'],
':creator'=>$user['creator'],
':type'=>$user['type'],
':value'=>$user['value'],
':date'=>$user['date'],
':readed'=>$user['readed'],
':erased'=>$user['erased']
));
}

$dbc->commit();

一些引用点:

关于php - MySQL 上的多个 INSERT/UPDATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28024375/

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