Bu benim ilk kez kullanıyorum .. yinelenen üzerine, bir sorunum var. Yinelenen güncellemede eklediğim tam olarak beklediğim gibi çalışmaz, örneğin, DB'mdeki bir tabloyu güncellemeye çalıştığımda, DB'nin beklendiği gibi güncellenen satır yerine yeni bir satır eklenir. Çok ilginç. Birinin bir bakışı olup olmadığını kabul edip edemeyeceğini merak ediyordum. Bu arada birincil ve benzersiz bir anahtarım var.INSERT ... DUPLICATE ANAHTAR GÜNCELLEME beklendiği gibi çalışmaz
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 ";
}
}
TABLO
Sizin$insert
sorgu yakın bir tırnak işareti eksik
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
bir satır güncellemek istiyorsanız, 'UPDATE' kullanın. 'DÜŞÜSTEN ANAHTAR GÜNCELLEME IN INSERT columns genellikle sütunlar ve sorgu değerlerinde bulunan bir otomatik arttırma birincil anahtarı olduğunda mantıklı değildir. –