Thomas Maurer: mysqli_result boolean statt Resultat :(

Hallo,

ich habe folgendes Problem:

Ich habe eine Datenbank "bank_01" mit der Tabelle "authentifikation". Die Tabelle verfügt über die Spalten "datum" und "pin". Nun möchte ich sämtliche sich in "bank_01" befindlichen Pins ("pin") auslesen, die das heutige Datum ("datum") aufweisen. Dazu der Code:

$aktuelles_datum = date("dmy");

$verbindung = mysqli_connect("", "root");
mysqli_select_db($verbindung, "bank_01");
$auswaehlen = "SELECT pin FROM authentifikation WHERE datum == $aktuelles_datum";
$res = mysqli_query($verbindung, $auswaehlen);

$PIN_Feld = [];
while ($dsatz = mysqli_fetch_assoc($res)) {
	$PIN_Feld[] = $dsatz;
} 

var_dump($PIN_Feld);

Meines Erachtens sollte var_dump($PIN_Feld) jetzt sämtliche pin-Einträge mit dem heutigen Datum (090716) auslesen, was nur leider nicht geschieht. Stattdessen bekomme ich die Meldung, dass mir while ($dsatz = mysqli_fetch_assoc($res)) statt eines Resultats einen Boolean zurückwirft. Scheint auch plausibel, da mir var_dump nicht alle pins mit dem heutigen Datum, sondern lediglich array(0) { } retourniert.

Bitte um Gnade - vielen Dank! LG, Thomas

akzeptierte Antworten

  1. n'Abend,

    $aktuelles_datum = date("dmy");
    
    $verbindung = mysqli_connect("", "root");
    mysqli_select_db($verbindung, "bank_01");
    $auswaehlen = "SELECT pin FROM authentifikation WHERE datum == $aktuelles_datum";
    $res = mysqli_query($verbindung, $auswaehlen);
    
    $PIN_Feld = [];
    while ($dsatz = mysqli_fetch_assoc($res)) {
    	$PIN_Feld[] = $dsatz;
    } 
    
    var_dump($PIN_Feld);
    

    Meines Erachtens sollte var_dump($PIN_Feld) jetzt sämtliche pin-Einträge mit dem heutigen Datum (090716) auslesen, was nur leider nicht geschieht. Stattdessen bekomme ich die Meldung, dass mir while ($dsatz = mysqli_fetch_assoc($res)) statt eines Resultats einen Boolean zurückwirft.

    ja, das ist ein Folgefehler. Du hast leider nicht daran gedacht, nach mysqli_query() auf Fehler zu prüfen. Genauer gesagt, du hast überhaupt keine Fehlerabfrage und -behandlung.

    Tipp: In SQL ist - im Gegensatz zu C-ähnlichen Programmiersprachen - der Vergleichsoperator ein einfaches '=', nicht '=='.

    So long,
     Martin

    --
    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
    1. Lieber Martin,

      tatsächlich, danke für deine rasche Antwort! :) Werde mich mit Fehlerabfrage und -behandlung wie von dir empfohlen noch genauer befassen.

      Schönen Abend und schönes Wochenende, T.

      P.S.: ich habe deine Antwort natürlich als "Akzeptierte Antwort" markiert. Nochmals danke!