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 に答える