Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Fatal error: Call to a member function bindValue() on a non-object

  1. #1
    rs13bnet
    Gast

    Frage Fatal error: Call to a member function bindValue() on a non-object

    werte Community

    habe mit folgendem PHP Code das im Titel beschriebene Problem :

    PHP-Code:
      public static function getList$numRows=1000000$order="publicationDate DESC" ) {
        
    $conn = new PDO('sqlite:'.wpm_DATABASE);
        
    $sql "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles ORDER BY " mysql_real_escape_string($order) . " LIMIT :numRows";

        
    $st $conn->prepare$sql );
        
    $st->bindValue":numRows"$numRowsSQLITE3_INTEGER);
        
    $st->execute();
        
    $list = array();

        while ( 
    $row $st->fetch() ) {
          
    $article = new Article$row );
          
    $list[] = $article;
        } 
    Wie im Titel beschrieben erhalte ich den Fehler : "Fatal error: Call to a member function bindValue() on a non-object in E:\xampp\htdocs\1proj\classes\article.php on line 107" (107 entspricht der 6 Zeile im oben geposteten PHP Code)

    Kann mir da wer Helfen ?

    Danke schon mal im Voraus.

    Rene
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Auszug aus der Doku von PDO::prepare
    If the database server successfully prepares the statement, PDO::prepare() returns a PDOStatement object. If the database server cannot successfully prepare the statement, PDO::prepare() returns FALSE or emits PDOException (depending on error handling).
    Und was hat da ein mysql_real_escape_string zu suchen???

  3. #3
    rs13bnet
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Zitat Zitat von Bandit Beitrag anzeigen
    Und was hat da ein mysql_real_escape_string zu suchen???
    Das ist definitiv nicht das was den Fehler verursacht, denn der Fehler kommt auch nach dem mysql_real_escape_string entfernt wurde und wozu das gut ist : "Maskiert spezielle Zeichen im unescaped_string unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung, so dass das Ergebnis ohne Probleme in mysql_query() verwendet werden kann. Wenn Sie Binärdaten einfügen wollen, müssen Sie die Funktion auf jeden Fall verwenden."

    Und entschuldige bitte, aber dein Zitat ist auch nicht sehr hilfreich.

  4. #4
    Bandit
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Aha, du nutzt also PDO mit SQLite und nimmst dann mysql_real_escape_string? Wenn du meinst...

    Und was hilft dir an dem Zitat nicht??? Daraus kann man wohl schließen, dass
    PHP-Code:
    $st $conn->prepare$sql ); 
    in die Hose geht. Auch wenn dir das dann auch nicht weiterhelfen wird:

    Richtig debuggen


    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  5. #5
    rs13bnet
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Zitat Zitat von Bandit Beitrag anzeigen
    Und was hilft dir an dem Zitat nicht??? Daraus kann man wohl schließen, dass
    PHP-Code:
    $st $conn->prepare$sql ); 
    in die Hose geht. Auch wenn dir das dann auch nicht weiterhelfen wird:

    Richtig debuggen
    Es hilft nicht weil mir das bekannt ist. Mir ist auch klar das die SQL Query der Fehlerpunkt ist. Nenne es von mir aus Betriebsblindheit aber ich sehe es nicht.

    Was "PDO mit SQLite und nimmst dann mysql_real_escape_string" an geht, benutz mal Google und du wirst einige Tut's und Beiträge finden die das behandeln und auch wenn es dich überrascht es funktioniert und das nicht nur bei 8 anderen abfragen im restlichen Script sondern auch bei anderen Projekten die nicht aus meiner Feder stammen.

    Das ganze Script, in verschieden Dateien aufgeteilt, umfasst ohne Kommentare ca. 6.400 Zeilen PHP-Code und "error_reporting(-1);" so wie "ini_set('display_errors', true)" sind natürlich in der aufrufenden index.php eingetragen.. Das Code war ursprünglich für mysql ausgelegt und soll nun auf Wunsch auf SQLite umgestellt werden. Insgesamt gibt es im Code 83 sql abschnitte, hab ich alle bereits zum laufen bekommen, nur diese eine, letzte abfrage bekomme ich nicht auf SQLite umgeschrieben.


    Ich meine das jetzt nicht Böse aber deine Auflistung im Schulmeister Style :
    Zitat Zitat von Bandit Beitrag anzeigen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
    sowas ist ziemlich beleidigend für jemanden der schon zu "Pre C64" Zeiten als Programmierer tätig war, ok das konntest du nicht wissen und genau deshalb hättest du vorher mal Fragen können.

    Auch du scheinst ja den Fehler nicht zu sehen.

    Gruß Rene

  6. #6
    Bandit
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Tja, dann lügt wohl die PHP-Doku:
    Note:
    A MySQL connection is required before using mysql_real_escape_string() otherwise an error of level E_WARNING is generated, and FALSE is returned. If link_identifier isn't defined, the last MySQL connection is used.

  7. #7
    rs13bnet
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Auch wenn Du Moderator bist : Also echt da schaust du in eine Docu und meinst die Weisheit mit löffeln gefressen zu haben.

    Ich habs doch oben schon geschrieben, selbst wenn ich es raus nehme und "sqlite_escape_string()" verwende bleibt der Fehler.

    Wenn du nix zu sagen hast was zur Lösung beiträgt dann spar dir dein Geschreibsel doch.

    Gruß

  8. #8
    Bandit
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Wenn du deine unfreundlichen Kommentare nicht langsam sein lässt, ist hier ganz schnell zu!

  9. #9
    rs13bnet
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Zitat Zitat von Bandit Beitrag anzeigen
    Wenn du deine unfreundlichen Kommentare nicht langsam sein lässt, ist hier ganz schnell zu!
    Dann mach doch zu. Aber ich brauche mich echt nicht von jemanden auf solch Arrogante Art Schulmeistern zu lassen der selber nicht weis, oder aus Gehässigkeit nicht sagen will, was da falsch laufen könnte.

    Alles was du geschrieben hast ist in der Angelegenheit entweder unangemessen gewesen oder zeug davon das du keine Ahnung hast. Habe mittlerweile einige deiner anderen Postings gelesen, und dieses Schulmeisterhafte Art zieht sich Quer durch die Meisten deiner Beiträge die ich gelesen habe.

    Du hast zwar das Hausrecht da du Moderator bist aber selbst als solcher sollte man seinen Gästen ohne Arroganz begegnen und nicht meinen jeden wie einen Erstklässler behandeln zu können. Du solltest dir mal dein eigenes Profilbild zu Herzen nehmen.

    Gruß

  10. #10
    Bandit
    Gast

    Standard AW: Fatal error: Call to a member function bindValue() on a non-object

    Jetzt pass mal schön auf!!!
    Du klatsch hier einen Quellcode und eine Fehlermeldung rein. Allerdings sieht mal nichts, aber absolut garnichts davon, das du in irgendeiner Form "Richtig debuggen" angewendet hast.
    Und dass mysql_real_escape_string definitiv falsch ist, darüber müssen wir wohl nicht mehr reden.
    Aber du empfindest das schon als beleidigend, wenn man dir "Richtig debuggen" schreibt. Woher soll ich wissen, dass du das schon gemacht hast? Ich sehe nix davon.
    Und wenn du der große Hero bist und mal die Doku lesen würdest, hättest du dir schon längst mal die Fehlerbehandlung von PDO angesehen. Aber auch davon ist in dem Quellcode nichts zu sehen.
    Ich wiederhole mich ja gerne:
    If the database server cannot successfully prepare the statement, PDO:repare() returns FALSE or emits PDOException (depending on error handling).
    Da steht was von PDOException. Wo setzt du das ein?

    Außer unfreundliche Sprüche ist von deiner Seite hier mal rein garnichts gekommen!!!

Ähnliche Themen

  1. Fatal error: Cannot redeclare date_add()
    Von admin im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 16.03.2012, 09:59
  2. Fatal error: Can't use function return value in write context
    Von tomcrafter im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 07.06.2010, 11:59
  3. Arcade mod geupdatet = fatal error
    Von Pharel im Forum Webanwendungen - Webapplikationen
    Antworten: 4
    Letzter Beitrag: 15.06.2009, 07:56
  4. Call of Duty Clan sucht Member
    Von Kralle im Forum Das Forum für Spiele, Fun & Jokes
    Antworten: 0
    Letzter Beitrag: 18.06.2008, 15:45
  5. PHP-Nuke Fatal Error
    Von Joop im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 13.09.2005, 15:56

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •