2016-03-19 9 views
0

私は非常にランダムな瞬間に発生した小さな問題に苦しんでいます。この行は、何か不思議なことが起こるまで完璧に働きました。準備された文は存在していても結果が見つからない

私がしようとしているのは、POSTからユーザー名とパスワードを取得し、その結果をステートメントにバインドし、それらのクレジットを持つアカウントがあるかどうかを確認することです。

$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(); 
} 

私は私が私のDBを持っているアカウントのカップルを試してみましたが、彼らは単に、もはや動作しない、それが今では単にもう動作しません、しばらく前に完全に働いた...

私は何をすべきかわからないので、私は本当にここで立ち往生しています。

+0

プリペアドステートメントとバインディングデータを使用する場合は、mysqli_real_escape_stringを使用しないでください。代わりにエスケープされたデータを検索します。 – PeeHaa

+0

出力は何ですか? –

+0

私はvar_dump($ username)とパスワードを実行しました。私はそれらを入力すると正確にユーザー名とパスワードを取得します。 – kaZep

答えて

0

exit()をすべて削除しました。何らかの理由でそれが働いた。

関連する問題