したがって、私はPHPで作業しており、準備された文はMySQLデータベースに送られます。私はかなりデバッグできない問題に遭遇しました。拳文はそれがライン$preparedStmt->bind_param("s", $resultUUID);
でだ、正常に動作準備PHP - Prepared Statementクエリが2回目で動作しません。
// Check if the input username is in the database
\t \t $stmtQuery = "SELECT * FROM updatedplayers WHERE Player=?;";
\t \t $preparedStmt = $dbc->prepare($stmtQuery);
\t \t $preparedStmt->bind_param("s", $setUsername);
\t \t $preparedStmt->execute();
\t \t $preparedStmt->bind_result($resultUUID, $resultUsername);
\t \t $preparedStmt->fetch();
\t \t // If it's not, kill the page.
\t \t if ($resultUUID == null) {
\t \t \t incorrect();
\t \t }
\t \t
\t \t $stmtQuery = "SELECT Password, Salt FROM logins WHERE UUID=?;";
\t \t echo 'flag1 ';
\t \t $preparedStmt = $dbc->prepare($stmtQuery);
\t \t echo 'flag2 ';
\t \t $preparedStmt->bind_param("s", $resultUUID);
\t \t echo 'flag3 ';
:ここに私のコードです。これらの前にいくつか準備された声明もいくつかあります。私はこれを正しくやっていることを知っていますが、最後の声明についてはあまりよく分かりません。
コードはecho 'flag2 ';
の後に実行を停止するように見えますが、特定の行を見つけるためにそこに配置します。エラーメッセージは表示されません。印刷されないのはflag3
です。
$resultUUID
を静的な文字列に置き換えようとしましたが、同じ結果が得られました。また、私は自分のSQLステートメントが正しくフォーマットされていることを知っている、私は手動でコンソール内でテストしました。
これはかなりのことですが、私はPHPに慣れていないので、いくつかの批評を聞きたいと思います。また、自分自身でエラーを突き止めるのではなく、エラーについてもっと良いアイデアを得る方法はありますか?ありがとう!
'mysqli'ドライバには、エラー報告関数http://php.net/manual/en/mysqli.error.phpがあります。各DBの対話でそれを使用してみてください。 mysqliエラー報告オプションの詳細については、http://stackoverflow.com/questions/22662488/how-to-get-mysqli-error-in-different-environmentsを参照してください。 – chris85
エラーが報告されました。 – chris85
@ chris85私は現在それを記入する時間がありません。私は明日の翌日に時間があります。そして私はあなたに戻ってきます。 :) – Kaelinator