Rolf B: php: Syntax-Error

Beitrag lesen

Hallo dedlfix,

es ist vor allem gar nicht nötig, nach der SQL Abfrage nochmals die Werte zu vergleichen. Das hat MYSQL schon getan.

Wenn man mysqli verwendet, dann liefert mysqli_query(...) ein mysqli_result Objekt. Darauf gibt's ein num_rows Property, das muss man nur abfragen.

Die Datenbank kann man auch gleich beim Erzeugen des DB-Objekts mitgeben, 4. Parameter. Man muss bei der Objekt-Syntax nur connect_error abfragen, weil man immer ein Objekt bekommt.

$db = mysqli_connect("localhost", "root", "", "anmeldung");
if ($db === FALSE) {
   // DB nicht verfügbar, Error Handling. mysqli_connect_error() liefert den Grund
}
$result = mysqli_query($db, "SELECT username FROM login" .
                           " WHERE benutzername='$username'" . 
                           " AND passhash='$hashedPassword'");

$result ist im Falle eines SQL Fehlers FALSE, andernfalls ein mysqli_result Objekt. Das kann man mit Funktionsaufruf oder direkt befragen. Das Query-Ergebnis ist egal - es sei denn, man muss noch mehr Daten aus der login-Tabelle laden.

    if ($result !== FALSE && $result->num_rows > 0) {
        echo = "Login fertiggestellt! Hallo $username";
    }
    else {
        echo = "Login fehlgeschlagen"
    }
}

Lektüre zu mysqli

Rolf

--
sumpsi - posui - obstruxi