Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Não é possível usar o objeto do tipo PDOStatement como array


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

$admin é do tipo PDOStatament que é uma classe e não uma matriz. Portanto, você não pode chamar o [] operador nele.

Além disso, você não deve sempre atribuir $admin ao resultado de retorno de cada método porque a maior parte do PDOStatament Os métodos de retornam valores booleanos:
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
$admin->bindValue(':username', $_SESSION['user']);
$admin->execute();

Para recuperar o super_admin coluna do admin tabela que você deve adicionar (depois do execute() demonstração):
$result = $admin->fetch(PDO::FETCH_ASSOC);

que será preenchido (espero, depende de qual é o esquema da tabela) $result['super_admin'] .