Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile utilizzare l'oggetto di tipo PDOStatement come matrice

Da:

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

$admin è di tipo PDOStatament che è una classe e non un array. Pertanto non puoi chiamare il [] operatore su di esso.

Inoltre, non dovresti sempre assegnare $admin al risultato di ritorno di ogni metodo perché la maggior parte del PDOStatament I metodi di 's restituiscono valori booleani:

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

Per recuperare il super_admin colonna da admin tabella che dovresti aggiungere (dopo il execute() dichiarazione):

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

che popolerà (si spera, dipende dallo schema della tabella) $result['super_admin'] .