Umstellung von PHP 7.x auf PHP 8.x - Uncaught Error: Call to a member function next()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umstellung von PHP 7.x auf PHP 8.x - Uncaught Error: Call to a member function next()

    Hallo,
    mein Provider schaltet demnächst PHP 7.x ab und stellt entsprechend nur noch PHP 8.x zur Verfügung. Leider funktionieren mit PHP 8 nicht alle Skripte. Einiges konnte ich inzwischen selbst korrigieren wie das Ersetzen von { } durch [ ]. Mit dem folgenden Fehler komme ich aber nicht weiter bzw. finde nicht den richtigen Lösungsansatz.

    Fatal error: Uncaught Error: Call to a member function next() on bool in /data/web/htdocs/events0.php:63 Stack trace: #0 /data/web/htdocs/index.php(132): include() .#1 {main} thrown in /data/web/htdocs/events0.php on line 63

    Die betreffende Zeile sieht aktuell so aus:
    PHP-Code:
       while ($result -> next() ?? '') { 

    Das "?? ''" habe ich bereits als Lösungsversuch erfolglos ergänzt.

    $results wird vorher so aus einer Textdatei eingelesen:
    PHP-Code:
        $db = new Database();
        
    $db->Database("termine" ?? NULL);
        
    $result $db->executeQuery("SELECT * FROM $jahr ORDER BY datcode, datum") ?? '';
    ​ 

    Auch hier habe ich an zwei stellen "?? ''" bzw. "?? NULL" eingefügt, was keine Änderung brachte. Unter PHP 7.4 funktioniert das Skript einwandfrei. Unter PHP 8 wird es aber mit obiger Fehlermeldung abgebrochen.

    Was führt hier zu diesem fatalen Error und wie kann ich das Problem lösen?

    TIA Maik

  • #2
    Hauptsächlich indem du den fragst, der es geschrieben hat.
    Mit den Codeschnipseln lässt sich das auf jeden Fall nicht beantworten.

    $db->executeQuery() gibt wohl false oder true zurück. Da das keine offizielle PHP-Funktion sondern da irgend ein komischer Wrapper verwendet wird ist das nicht beantwortbar.

    Kommentar


    • #3
      Zitat von jonas3344 Beitrag anzeigen
      Hauptsächlich indem du den fragst, der es geschrieben hat.
      Ich habe jetzt mal beim ursprünglichen Entwickler nachgefragt, befürchte aber, dass ich von ihm keinen Support mehr erhalte.

      Zitat von jonas3344 Beitrag anzeigen
      Mit den Codeschnipseln lässt sich das auf jeden Fall nicht beantworten.

      $db->executeQuery() gibt wohl false oder true zurück. Da das keine offizielle PHP-Funktion sondern da irgend ein komischer Wrapper verwendet wird ist das nicht beantwortbar.
      Ich füge jetzt mal das Skript mit den entsprechenden Funktionen bei, in der Hoffnung, dass jemand was damit anfangen und bei der Problemlösung helfen kann.
      Angehängte Dateien

      Kommentar


      • #4
        Copyright 2005 by c-worker.ch
        Merkst du was? Das Ding gehört ins Museum.

        Kommentar


        • #5
          Zitat von jonas3344 Beitrag anzeigen
          Merkst du was? Das Ding gehört ins Museum.
          So ist es. Selbst wenn man diesen Fehler findet und korrigiert, die Wahrscheinlichkeit, dass dann der nächste Fehler hochkommt, ist riesig groß.

          Kommentar


          • #6
            Zitat von prinzip Beitrag anzeigen
            Ich habe jetzt mal beim ursprünglichen Entwickler nachgefragt, befürchte aber, dass ich von ihm keinen Support mehr erhalte.
            Völlig überraschend hat er geantwortet und mir alle relevanten Dateien mit PHP 8 Überarbeitung geschickt, die er selbst für die PHP 8 Umstellung anpassen musste.

            In den überarbeiteten Dateien steht weiterhin "Copyright 2005 by c-worker.ch", was auf die Funktionsweise glücklicherweise keinen Einfluss hat.


            Kommentar

            Lädt...
            X