Hallo zu aktualisieren, ich bin mit dieser Abfrage Probleme haben:MySQL nicht auf doppelte Schlüssel
$size = isset($_POST['size'])
? "'".mysql_real_escape_string($_POST['size'])."'"
: "NULL";
$color = isset($_POST['color'])
? "'".mysql_real_escape_string($_POST['color'])."'"
: "NULL";
if (is_numeric($_POST['productID']) && is_numeric($_POST['amount']))
{
mysql_query("INSERT INTO usercart VALUES ('', '"
.mysql_real_escape_string($_SESSION['user_ID'])."', '"
.mysql_real_escape_string($_POST['productID'])."', "
.$size." , ".$color." , '".mysql_real_escape_string($_POST['amount'])."')"
." ON DUPLICATE KEY UPDATE amount = amount + '"
.mysql_real_escape_string($_POST['amount'])."'") or die(mysql_error());
}
In meiner MySQL-Tabelle einen eindeutigen Index "product"
auf productID
, userID
, size
und color
namens ich habe. Aber wenn ich diese Abfrage ausführe, fügt sie nur ein, anstatt den Betrag zu aktualisieren. Lesen der MySQL-Dokumentation Ich kann und sollte den Indexnamen nicht angeben müssen.
Ich habe jetzt stundenlang damit herumgespielt. Also weiß irgendjemand was los ist?
Können Sie die Einträge, die jetzt doppelt vorhanden sind, in der Tabelle usercart w.r.t auflisten. Der Index? Und überprüfen Sie, dass der Index auch Eindeutigkeit erfordert? –
Die Struktur: http: //img221.imageshack.us/img221/3494/dbuniqueerror01rjw.jpg Und die Einträge: http://img217.imageshack.us/img217/6959/dbuniqueerror02.jpg – Madmenyo
Beide Einträge erstellt werden Verwenden Sie die gleiche Abfrage wie oben beschrieben. Wie Sie sehen können, die exakt gleichen Werte. – Madmenyo