我正在尝试使用以下函数更新MySQL数据库中的值,该函数创建一个更新语句,从 places <中的现有值中减去 $ seats 变量的值/ strong>数据库中的字段。 下面的代码返回0而不是使用$ seats变量的值减少places值。
$update_seats = update_places($id);
function update_places($id) {
global $modx;
$table = "`database_name`.`table_name`";
$update_seats = '`places`' - $seats;
$result = $modx->db->update( '`places` = ' . $update_seats, $table, '`id` = "' . $id . '" AND `places` > 0' );
return $result; // Returns 'true' on success, 'false' on failure.
}
非常感谢任何帮助纠正我的语法。
答案 0 :(得分:0)
$seats
变量在函数内部未定义,您需要使用:
function update_places($id, $seats)
然后将其称为$update_seats = update_places($id, 123);
另外,将您的查询更改为更正确:
$result = $modx->db->update( '`places` = ' . $update_seats, $table, '`id` = ' . intval($id, 10) . ' AND `places` >= ' . $seats );