sql >> データベース >  >> RDS >> Mysql

タイプPDOStatementのオブジェクトを配列として使用できません

    差出人:

    $admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
    [...]
    if ($settings['create_admins'] > 0 || $admin['super_admin'] > 0 ) {
    

    $admin タイプはPDOStatament これはクラスであり、配列ではありません。したがって、[]を呼び出すことはできません その上の演算子。

    また、常に$adminを割り当てる必要はありません。 PDOStatamentのほとんどは、すべてのメソッドの結果を返します。 のメソッドはブール値を返します:

    $admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
    $admin->bindValue(':username', $_SESSION['user']);
    $admin->execute();
    

    super_adminを取得するには adminの列 追加する必要のあるテーブル(execute()の後に ステートメント):

    $result = $admin->fetch(PDO::FETCH_ASSOC);
    

    これは入力されます(うまくいけば、テーブルスキーマが何であるかによって異なります)$result['super_admin']



    1. GoogleDatastudioを使用したHerokuPostgresql

    2. Oracle PL /SQLはサーバーのIPv4を取得しますか?

    3. MySQLエラー1005?

    4. ジオロケーションMySQLクエリ