Ich habe eine MySQL-Tabelle mit einer Integer-Spalte namens count
, die ich versuche, einige Grundrechenarten zu tun und dann den Wert zu aktualisieren. Hier ist ein Beispiel für eine solche Aufgabe, die ich versuche.MySQL zu PHP Integer Math
$sql = 'SELECT count FROM triggers WHERE id = ?';
$params = array($id);
$result = sqlsrv_query($connection, $sql, $params);
$row = sqlsrv_fetch_array($result);
$count = intval($row[0]);
if ($count = 0)
return -1;
$newCount = $count - 1;
$sql = 'UPDATE triggers SET count = ? WHERE id = ?';
$params = array($newCount, $id);
$result = sqlsrv_query($connection, $sql, $params);
Das Problem, das ich habe, ist, dass $newCount
immer gleich -1, so dass der Datenbankwert von count
auf -1 aktualisiert. In einem bestimmten Beispiellauf war $count
gleich 84, also gab es die if-Anweisung. Aber anstatt $newCount
wird auf 83 gesetzt, wird es auf -1 gesetzt.
Ich habe das Gefühl, das hat etwas damit zu tun, dass der MySQL-Wert als String behandelt wird statt als Integer, aber ich dachte, intval()
würde das lösen. Ich versuchte auch (int)
stattdessen, aber keinen Unterschied.
'echo $ count' vor if-Anweisung und prüfen sie seinen Wert – affaz
es ist möglich, dass Zählung ein reserviertes Wort ist, und muss Backticks in Ihrer Abfrage (dies macht es fehlschlagen und sein„falsch“, die auf 0 gegossen wird , dann wird 1 davon subtrahiert). Außerdem würde ich empfehlen, dass Sie versuchen, den Wert direkt in der Abfrage zu aktualisieren. Beispiel: http://stackoverflow.com/questions/16277339/decrement-value-in-mysql-but-not-negative –