[英]Multiple INSERT/UPDATE on MySQL
我必須使用ON DUPLICATE KEY指令對一個動態字段和其他靜態字段執行多次插入/更新。 我有帶有字段的表“ notifications”:
ID (BIGINT AUTOINCREMENT PRIMARY KEY),
user (BIGINT UNIQUE),
creator (BIGINT UNIQUE),
type (TINYINT UNIQUE),
value (BIGINT UNIQUE),
date (INT),
readed (TINYINT),
erased (TINYINT).
我必須為每個用戶插入/更新一行(ID將通過查詢提取),因此“用戶”字段的值將是動態的,其他則是靜態的。 如何在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();
一些參考點:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.