我试图更新"places“列的特定行(ID)中的MySQL数据库字段(将值减少1),只要字段中的数字大于0。
(见下面的示例语句)
UPDATE table SET places = places - 1 WHERE id = $id AND places > 0除了将字段的值更改为零之外,下面的语句将失败。如果有人能帮我解决语法错误,我将不胜感激。
if($id){
global $modx;
$table = "`database_name`.`table_name`";
$update_seats = "`places` - 1";
$result = $modx->db->update( '`places` = "' . $update_seats . '"', $table, '`id` = "' . $id . '" AND `places` > 0' );
return $result; // Returns 'true' on success, 'false' on failure.
}发布于 2014-02-07 23:36:03
您已附上双引号中字段的新值。
$result = $modx->db->update( '`places` = "' . $update_seats . '"', $table, '`id` = "' . $id . '" AND `places` > 0' );在MySQL查询中作为字符串计算的内容。在这里删除双引号
'`places` = "' . $update_seats . '"'所以它看起来像这样
$result = $modx->db->update( '`places` = ' . $update_seats, $table, '`id` = "' . $id . '" AND `places` > 0' );发布于 2014-02-07 23:36:21
该查询看起来不错,如果需要将1的最小值设置为places,则只需相应地更改查询:
UPDATE table SET places = places - 1 WHERE id = $id AND places > 1https://stackoverflow.com/questions/21639645
复制相似问题