如果記錄不存在,我知道如何執行 INSERT INTO。但如果它確實存在,mysql 不會將其視為錯誤。它只是將其視為插入了 0 行。我想知道是否是這種情況,并將該訊息回傳給用戶,說明他們提交的資料已經存在。
我知道如果在嘗試插入新資料之前先查詢 mysql,我可以做到這一點。但是,有沒有辦法用 INSERT 來做到這一點并得到結果?
uj5u.com熱心網友回復:
您可以使用ON DUPLICATE KEY UPDATE在這種情況下mysqli::$affected_rows如果將行作為新行插入,則回傳 1,如果更新現有行,則回傳 2,如果將現有行設定為其當前值,則回傳 0(來源)。所以你的代碼應該是這樣的:
if ($mysqli->affected_rows == 1) {
$inserted = true;
}
if ($mysqli->affected_rows == 2) {
$updated = true;
}
uj5u.com熱心網友回復:
您可以使用 else 塊向用戶設定回傳訊息
使用如下引數
@ReturnMessage varchar(max) output
If (Not Exists ...)
Begin
Insert ....
End
Else
Begin
Set @ReturnMessage = 'This Record already exists'
End
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411785.html
標籤:
下一篇:如何檢查歌曲是否存在?
