私は、別の開発者によってPHPで構築されたWebアプリケーションを変更しています。現在、ユーザがフォームを記入し、すでに使用されているユーザ名を入力すると、MySQLエラーDuplicate entry 'fred' for key 'username'
が新しいページに表示されます。同じページにエラーメッセージが表示されるようにしたいので、入力したユーザー名がテーブルの別のユーザー名と一致するかどうかを確認しようとしていますが、動作させることはできません。何かご意見は?MySQLで重複エントリを確認する
$username_entry = ($_POST['username']);
$username_match = mysql_query("SELECT * FROM business WHERE username='$username_entry'");
if (($_POST['username']) == $username_match) {
// do something
}
この部分は動作しませんか? –
最良のソリューションは、すでに実装されているソリューションです。入力結果に重複したキーがある場合は、適切なエラーメッセージを表示することができます。これにより、データベースへの1回のラウンドトリップしか行われません。挿入を行う前にユーザーが存在するかどうかをチェックすると、2回のラウンドトリップが発生し、これはよりコストがかかります。 私があなたの問題について見ている最も良い解決策は、次のいずれかです。 1.エラーメッセージページから呼び出し元のページにリダイレクトし、適切なエラーを表示します。 2. ajaxを使用してリクエストを完了し、呼び出しフォームにエラーを表示します。 – Chris
@ Chris-MayhemSoftware私はPHPのnoobですので、どうやってこのようなエラーメッセージを表示するのか分かりません。あなたは詳しく説明できますか? –