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

Kan ikke bruge objekt af typen PDOStatement som array

Fra:

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

$admin er af typen PDOStatament som er en klasse og ikke en matrix. Derfor kan du ikke kalde [] operatør på den.

Du bør virkelig ikke altid tildele $admin til returneringsresultatet af hver metode, fordi det meste af PDOStatament 's metoder returnerer booleske værdier:

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

For at hente super_admin kolonne fra admin tabel, du skal tilføje (efter execute() erklæring):

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

som vil udfyldes (forhåbentlig afhænger det af, hvad tabelskemaet er) $result['super_admin'] .



  1. Docker-billede køres i m1-processor

  2. Hvordan transaction_timestamp() virker i PostgreSQL

  3. Slip af fra en kolonne duplikatværdier i to kolonnevalg

  4. Får tidsstempel ved hjælp af MySQL