Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Objekt vom Typ PDOStatement kann nicht als Array verwendet werden

Von:

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

$admin ist vom Typ PDOStatament das ist eine Klasse und kein Array. Daher können Sie [] nicht aufrufen Operator darauf.

Auch sollten Sie wirklich nicht immer $admin zuweisen zum Rückgabeergebnis jeder Methode, da die meisten PDOStatament Die Methoden von geben boolesche Werte zurück:

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

Zum Abrufen des super_admin Spalte aus dem admin Tabelle, die Sie hinzufügen sollten (nach dem execute() Erklärung):

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

was aufgefüllt wird (hoffentlich hängt es vom Tabellenschema ab) $result['super_admin'] .