Nein, das liegt daran dass du unter MariaDB noch mit
VALUES(value)
arbeiten musst, siehe Handbuch – bei MySQL ist der Syntax seit Version 8.0.20 als veraltet eingestuft.
Ja, mein Erklärungsversuch mit bindValue ergibt keinen Sinn.
Du bräuchtest vor dem inneren foreach noch eine Variable (z.B.
$gefunden = false;
) welche du innerhalb des if-Blocks auftrue
setzt. Wenn$gefunden
dann nach der inneren foreach-Schleife immer nochfalse
ist, gibt es den Datensatz noch nicht und du müsstest ein INSERT ausführen.
Boah, na klar. Mann, vielen Dank, Tobias. Die Lösung ist so einfach und ich habe da sonst was für Verrenkungen angestellt. Das merke ich mir auf jeden Fall fürs nächste Mal. 🙏
So sieht das nun aus:
$isNew = true;
foreach ( $releases as $row )
if ( $row['id'] === $id )
$isNew = false;
if ( $isNew === true && $value > 0 )
$Releases -> create();
else $Releases -> update();
header( 'Location:' . $_SERVER['HTTP_REFERER'] );
Muss nur noch was rein, damit die Reihe wieder gelöscht wird, wenn der aktualisierte Wert 0 entspricht. Aber das geht ja wieder leicht.
Grüße
Boris