Nicht verwenden Objekt vom Typ PDOStatement als array

Ich möchte, um zu überprüfen, ob manche Spalte der user angeben, hält einen höheren Wert als 0.

Problem

Wenn du die Abfrage, und dann ausführen, Im immer diese Fehlermeldung:

Fatal error: Cannot use object of type PDOStatement as array in C:\xampp\htdocs\recover\admin\create.php on line 40

Mein code (Die Abfrage + durchführen):

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

Zeile der Fehler (40):

if ($settings['create_admins'] > 0 || $admin['super_admin'] > 0 ) {

Frage:

Warum bin ich immer diese Fehlermeldung? Wie kann ich es beheben?

Habe ich versucht, dies zu tun:

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

und immer eine andere Fehlermeldung:

Fatal error: Call to a member function execute() on a non-object in C:\xampp\htdocs\recover\admin\create.php on line 38

Dank!

EDIT: ich brauche das ->fetch-object, aber ich habe einfach das getan, und entledigte sich der Fehler.. Aber es doesn ' T beeinflussen? Ich meine, ich bin echo-Zeile, und es gibt mir eine null (nichts). Warum?

$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = ".$_SESSION['user']."");
$admin = $admin->fetch();
Es sind viele Beispiele im PHP-Handbuch unter gewusst wie: abrufen von Zeilen mit PDO. Es gibt absolut keine Notwendigkeit zu erraten.
Ich denke der Fehler ist hier $admin = $admin->execute(); brauchst du nicht zu vergeben ist das Ergebnis von execute() , $admin-variable, rufen Sie die execute () -
Machen var_dump($admin) nach $admin = $admin->fetch(); und finden Sie den Ausgang.
Wenn ich entfernt die $admin = vor $admin->, bekomme ich den gleichen Fehler.
dann, wahrscheinlich hast du ein problem mit der Abfrage. Ändern prepare("SELECT * FROM admin WHERE username = ".$_SESSION['user'].""); mit prepare("SELECT * FROM admin WHERE username = '".$_SESSION['user']."'");

InformationsquelleAutor Jony Kale | 2013-04-02

Schreibe einen Kommentar