0

每当我使用它时,它都会将数据库中的每个人更新到相同的等级

if (isset($_POST['adduser'])) {
  db_update('members')
  ->fields(array(
 'rank' => $_POST['person_rank'],
 ))
 ->where('name' <> $_POST['person'])
 ->execute();
header('Location: http://www.krokgaming.org/members');
}

我试过了,->where('name' =但这不起作用。

4

1 回答 1

2

您没有正确使用条件句。第一个参数应该只是字段,而不是比较运算符和您要比较的值(实际上将解析为布尔值)。

改变:

->where('name' <> $_POST['person'])

成为:

->condition('name', $_POST['person'], '<>')

如果你想使用这个where()方法,你必须传递一个实际的 where 子句(你的代码片段评估比较并传递一个布尔值),以及命名参数:

->where('name <> :name', array(':name' => $_POST['person']))

此外,您应该在使用 POST 数据之前对其进行真正的清理。

哦,对于 Drupal 问题,您应该真正查看http://drupal.stackexchange.com

于 2013-09-18T23:25:24.930 回答