Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible d'utiliser un objet de type PDOStatement comme tableau

De :

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

$admin est de type PDOStatament qui est une classe et non un tableau. Par conséquent, vous ne pouvez pas appeler le [] opérateur dessus.

De plus, vous ne devriez vraiment pas toujours attribuer $admin au résultat de retour de chaque méthode car la plupart des PDOStatament Les méthodes de renvoient des valeurs booléennes :

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

Pour récupérer le super_admin colonne de l'admin table que vous devez ajouter (après le execute() déclaration):

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

qui remplira (espérons-le, cela dépend du schéma de la table) $result['super_admin'] .