0
這是我第一次使用插入..重複,我有一個問題。重複更新的插入操作並不像我預期的那樣,例如每次嘗試更新我的數據庫中的表時,都會將新行插入到數據庫中,而不是按預期方式更新行。很奇怪。我想知道是否有人會看一看,並通過你的看法。 我有一個主要的和獨特的關鍵。INSERT ... ON DUPLICATE KEY UPDATE不能正常工作
if (isset($_POST['update'])) {
$a = mysqli_real_escape_string($dbc, $_POST['a']);
$b = mysqli_real_escape_string($dbc, $_POST['b']);
$c = mysqli_real_escape_string($dbc, $_POST['c']);
$insert = "INSERT INTO details
(a
, b
, c
)
VALUES
(?
, ?
, ?
)
ON DUPLICATE KEY
UPDATE a = VALUES (a)
, b = VALUES(b)
, c = VALUES(c)";
$row = mysqli_prepare($dbc, $insert);
mysqli_stmt_bind_param($row, 'sss',$a $b, $c);
/* execute query */
$execute = mysqli_stmt_execute($row);
if ($execute) {
echo "success";
} else {
echo "error ";
}
}
表
CREATE TABLE `Rest_Details` (
`A` int(34) NOT NULL AUTO_INCREMENT,
`B` varchar(100) NOT NULL,
`C` varchar(200) NOT NULL,
PRIMARY KEY (`A`),
UNIQUE KEY `B` (`B`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8
如果要更新行,使用'UPDATE'。當您在查詢的列和值中包含自動遞增主鍵時,「INSERT ... ON DUPLICATE KEY UPDATE」通常沒有意義。 –