2016-03-19 6 views
0

, also ich kämpfe mit meinem kleinen Problem, das zu einem sehr zufälligen Zeitpunkt aufgetreten ist. Diese Linie funktionierte perfekt, bis etwas Magisches passierte und es aus irgendeinem Grund nicht mehr funktionierte.Vorbereitete Aussage keine Ergebnisse zu finden, auch wenn sie existieren

Was ich versuche ist, den Benutzernamen und das Passwort vom POST zu erhalten, dann die Ergebnisse an die Anweisung zu binden und zu überprüfen, ob es einige Konten mit diesen Guthaben gibt.

$username = mysqli_real_escape_string($mysqli, $_POST['username']); 
$password = mysqli_real_escape_string($mysqli, $_POST['password']); 

if (!($statement = $mysqli->prepare("SELECT * FROM users WHERE username=? AND BINARY password=?"))) { 
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error; 
    exit(); 
} 

if (!$statement->bind_param('ss', $username, $password)) { 
    echo "Binding parameters failed: (" . $statement->errno . ") " . $statement->error; 
    exit(); 
} 

if(!$statement->execute()) { 
    echo "Something went wrong."; 
    exit(); 
} 

if($statement->num_rows == 0) { 
    echo "We have found no account with these creditentials."; 
    exit(); 
} 

Ich habe ein paar Konten habe ich versucht, in meinem DB haben, sie einfach nicht mehr funktionieren, es funktionierte eine Weile her perfekt, jetzt einfach ist es nicht mehr funktioniert ...

Ich bin wirklich hier fest, weil ich keine Ahnung habe, was ich tun soll.

+0

Verwenden Sie nicht mysqli_real_escape_string, wenn Sie vorbereitete Anweisungen und verbindliche Daten verwenden. Es wird stattdessen nach den Escaped-Daten gesucht. – PeeHaa

+0

Und was ist die Ausgabe? –

+0

Ich habe var_dump ($ username) und Passwort, ich bekomme den Benutzernamen und das Passwort genau, wie ich sie eingib. – kaZep

Antwort

0

Ich entfernte alle exit(); und aus irgendeinem Grund hat es funktioniert.

Verwandte Themen