sql >> Databáze >  >> RDS >> Mysql

Nelze použít objekt typu PDOStatement jako pole

Od:

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

$admin je typu PDOStatament což je třída a ne pole. Proto nemůžete volat [] operátora.

Také byste opravdu neměli vždy přiřazovat $admin na návratový výsledek každé metody, protože většina PDOStatament Metody 's vracejí booleovské hodnoty:

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

Chcete-li získat super_admin ze sloupce admin tabulku, kterou byste měli přidat (za execute() prohlášení):

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

který se naplní (doufejme, záleží na tom, jaké je schéma tabulky) $result['super_admin'] .



  1. Základy cizích klíčů v MySQL?

  2. Odraz v PLSQL?

  3. Jak provádět více dotazů na SQL

  4. Neshoda verze Postgresql 9.2 pg_dump