Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Nicht-Objekt-Fehler bei Verwendung von PHP PDO mit MySQL

Du brauchst kein frisches Paar Augen

Du bist kein Maler, sondern (angeblich) Programmierer.
Also, anstatt deinen Code zu beobachten, musst du laufen es. Und aktivieren Sie die Fehlerberichterstattung.

Oh, gerade entdeckt
Und natürlich sollten Sie Fehlermeldungen nicht knebeln!

} catch(PDOException $ex) {
    return false;
}

eine moderne Version des @-Operators.
Bitte entfernen Sie ALLE try..catch Blöcke in Ihrem Code und verwenden Sie sie erst, nachdem Sie erfahren haben, wozu sie dienen.

Also, um genau dieses Problem sowie viele andere Probleme in der Zukunft zu lösen

  1. Entfernen Sie alle try..catch-Blöcke in Ihrem Code.
  2. Aktivieren Sie die Fehlerberichterstattung für PDO, wie im Tag-Wiki beschrieben, auf das ich in den Kommentaren verlinkt habe.
  3. Verwenden Sie keine Platzhalter für die Bezeichner, sondern formatieren Sie sie wie in dem von mir verlinkten Tag-Wiki beschrieben
  4. Schalten Sie display_errors aus Einstellung, wenn Sie nicht möchten, dass Fehler angezeigt werden (der einzige Grund für die Unterdrückung von Fehlermeldungen, der mir einfällt).

Außerdem sollten Sie nicht in jedem Funktionsaufruf eine separate Verbindung öffnen.
Erstellen Sie eine Verbindung am Anfang Ihres Skripts und verwenden Sie dann if in der Funktion mit

global $h;