Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można użyć obiektu typu PDOStatement jako tablicy

Od:

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

$admin jest typu PDOStatament który jest klasą, a nie tablicą. Dlatego nie możesz wywołać [] operator na nim.

Również naprawdę nie powinieneś zawsze przypisywać $admin do wyniku zwracanego przez każdą metodę, ponieważ większość PDOStatament metody zwracają wartości logiczne:

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

Aby pobrać super_admin kolumna od admin tabelę, którą należy dodać (po execute() oświadczenie):

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

który się zapełni (mam nadzieję, że zależy to od schematu tabeli) $result['super_admin'] .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak łatwo zaimportować wiele plików sql do bazy danych MySQL?

  2. JPA lub Hibernate, aby wygenerować wartość kolumny (nie klucz podstawowy), nie zaczynając od 1

  3. Jak automatycznie usunąć wszystkie wiersze referencyjne, jeśli wiersz nadrzędny zostanie usunięty w mysql?

  4. Warunek SQL WHERE nie jest równy?

  5. Jak mogę dodać ograniczenie ON DELETE na stole?