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”通常没有意义。 –