0

クエリを正しく設定しましたが、エラーはまったく発生しませんでしたが、何らかの理由で更新されません

$database->updateAdmin(1, $_POST['user']);

 public function updateAdmin($status, $uid) {
    $sql = 'UPDATE users SET admin = :status WHERE uid = :uid';
    $result = $this->pdo->prepare($sql);
    $result->execute([
        ':status' => $status,
        ':uid' => $uid
    ]);
}

<select name="user">
      <option value="1">John</option>
     <option value="2">Sarah</option>
 </select>

admin フィールドは ENUM ('0','1') です

これがすべてのセットアップ方法です。問題はなかったと言っていますが、更新されません。誰かがおそらく理由を見つけることができますか?

4

1 に答える 1

1

エラーが発生するようにするには、エラーを要求する必要があります。
PDOを例外モードに設定しましたか?

ただし、難しいトリックがある可能性があります。
1を数値ではなく、文字列としてバインドする必要があります。それ以外の場合は更新されません。
私は配列からの自動バインドに精通していませんが、PDOが何らかの魔法を実行し、1を数値としてバインドする可能性は十分にあります。ですから、確かに手動でバインドします。

于 2012-12-27T19:32:49.457 に答える