Paule: php Abfrage mit mysqli

Hallo,

ich bin dabei uralte skripte auf meinem internen Server (also nicht öffentlich im Netz) von mysql_ auf mysqli_ umzustellen.

Die Datenbankverbindung steht.

Schon bei einer simplen Abfrage haut das nicht hin.

$SQL = "SELECT * FROM lieferschein WHERE (FUSSTEXT != 'ok' AND LIEFART ='2') OR (FUSSTEXT != 'ok' AND LIEFART = '3')";

$res = mysqli_query($ConnectHnd,$SQL);


while($ls = mysqli_fetch_assoc($res)){

}

Treffer 0! Keine Fehlermeldung!

Lasse ich die SQL via Heidi auf die Datenbank los = 25 Treffer!

Blick ichs nicht? Übersehe ich mal wieder ein Komma, Hochkomma etc?

Frust macht sich breit.

  1. Tach!

    Treffer 0! Keine Fehlermeldung!

    Genauer gesagt: keine PHP-Fehlermeldung. In deinem Code ist keine Auswertung der Rückgabewerte der verwendeten Funktion auf Fehlerzustand und auch keine Abfrage möglicher Meldungen.

    Die MySQL-API erzeugt keine PHP-Fehlermeldungen. Stattdessen signalisiert sie Fehler über ein false als Funktionsergebnis. Das muss man auswerten, wenn man nicht nur Schönwetterprogramme schreibt.

    dedlfix.

    1. Keine Fehlermeldung - auch nicht mit mysqli_error()?

      1. Hallo Paule,

        Keine Fehlermeldung - auch nicht mit mysqli_error()?

        echo "<pre>";
        var_dump($res);
        

        Bis demnächst
        Matthias

        --
        Du kannst das Projekt SELFHTML unterstützen,
        indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
        1. OK, Danke! Das ist das Ergebniss:

          object(mysqli_result)#2 (5) {
            ["current_field"]=>
            int(0)
            ["field_count"]=>
            int(111)
            ["lengths"]=>
            NULL
            ["num_rows"]=>
            int(25)
            ["type"]=>
            int(0)
          }
          

          Edit Rolf B: ~~~ hinzugefügt

          Das bedeutet doch, dasses 25 Treffer gibt. Der Fehler liegt dann ja wohl in der Schleife bzw. das $ls = mysqli_fetch_assoc($res) haut nicht hin.

          1. Hallo Paule,

            dann auf diese Weise weiterforschen.

            Bis demnächst
            Matthias

            --
            Du kannst das Projekt SELFHTML unterstützen,
            indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
          2. Hallo Paule,

            Der Fehler liegt dann ja wohl in der Schleife bzw. das $ls = mysqli_fetch_assoc($res) haut nicht hin.

            Der var_dump von $res ergab field_count = 111. Das sind eine Menge Spalten.

            Die Frage ist also, was Du innerhalb dieser while-Schleife tust. Du könntest zu Anfang des while-Blocks einen echo einbauen, der Dir ein identifizierende Spalte von $ls ausgibt.

            Die Frage ist auch, wie bei Dir error_reporting eingestellt ist. Gibt es einen PHP Fehler und Du siehst ihn einfach nur nicht, weil PHP ihn unterdrückt? Beim Debuggen setzt man zumeist error_reporting(E_ALL). In Produktions natürlich nicht.

            Rolf

            --
            sumpsi - posui - obstruxi