0
これは私の初めての挿入時の複製です。問題があります。たとえば、DB内のテーブルを更新しようとするたびに、新しい行が期待どおりに更新されるのではなく、DBに挿入されるなど、重複した更新の挿入が正しく機能しません。非常に奇妙な。私は誰かが見て、それにあなたのテイクを渡すかどうか疑問に思っていた。 私は途中でプライマリキーとユニークキーを持っています。INSERT ...重複キー更新が期待通りに機能しない
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 ";
}
}
TABLE
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
を。 INSERT ... DUPLICATE KEY UPDATEは、通常、問合せの列と値に自動インクリメントの主キーが含まれていると意味がありません。 –