sql >> Base de Datos >  >> RDS >> Mysql

No se puede usar un objeto de tipo PDOStatement como matriz

De:

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

$admin es de tipo PDOStatament que es una clase y no una matriz. Por lo tanto, no puede llamar al [] operador en él.

Además, no deberías asignar siempre $admin al resultado de retorno de cada método porque la mayoría de los PDOStatament Los métodos devuelven valores booleanos:

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

Para recuperar el super_admin columna del admin tabla que debe agregar (después de execute() declaración):

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

que se completará (con suerte, depende de cuál sea el esquema de la tabla) $result['super_admin'] .