sql >> Databasteknik >  >> RDS >> Mysql

Kan inte använda objekt av typen PDOStatement som array

Från:

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

$admin är av typen PDOStatament som är en klass och inte en array. Därför kan du inte anropa [] operatör på den.

Du bör verkligen inte alltid tilldela $admin till returresultatet för varje metod eftersom de flesta av PDOStatament s metoder returnerar booleska värden:

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

För att hämta super_admin kolumnen från admin tabell du bör lägga till (efter execute() uttalande):

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

som kommer att fyllas (förhoppningsvis beror det på vad som är tabellschemat) $result['super_admin'] .



  1. DOs och DONTs för index

  2. Hur man får en lista över datum mellan två datum i mysql select query

  3. Här är tre skäl till varför du kan se toppaktivitet i din SQL-instans

  4. Skriver MySQL över en kolumn med samma värde vid uppdatering?