У меня есть таблица MySQL с целым столбцом в ней, которая называется count
, и я пытаюсь выполнить базовую математику, а затем обновить значение. Вот пример одной такой задачи, которую я пытаюсь сделать.MySQL к 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);
Проблема у меня в том, что $newCount
всегда равен -1, так что значение базы данных count
обновляется до -1. В одном конкретном примере выполнения $count
был равен 84, поэтому он передал оператор if. Но вместо $newCount
, установленного на 83, он получает значение -1.
У меня такое чувство, что это связано с тем, что значение MySQL обрабатывается как строка вместо целого числа, но я думал, что intval()
решит это. Я также попытался использовать (int)
вместо этого, но никакой разницы.
'эхо $ count' до этого, если заявление и проверить его значение – affaz
Вполне возможно, что граф является зарезервированным словом, и нуждается кавычку в запросе (это делает его неудачу и быть«ложь», которая разливается в 0 , то 1 вычитается из него). Кроме того, я рекомендую вам попытаться обновить значение непосредственно в запросе. Пример: http://stackoverflow.com/questions/16277339/decrement-value-in-mysql-but-not-negative –