2010-12-08 3 views
4

私は成功していない同様の質問を探しました。PHPスクリプトでMySQL DBに挿入する前に値が存在するかどうかを確認してください。

私は、コードのこの作品があります

$query = "INSERT INTO table1 "; 
$query .= "(fname, lname, mail)"; 
$query .= " VALUES "; 
$query .= "('".$_POST[fname]."', '".$_POST[lname]."', '".$_POST[mail]."')"; 

$result = mysql_query($query) or die ("Query Failed: " . mysql_error()); 

form1.php

をそして、私はスクリプトが挿入された値は、対応する列に存在するかどうかをチェックし、場合、エラーをスローすることを望みますします。何か案は?

+1

注:インラインクエリの代わりにストアドプロシージャを使用すると、コードをよく管理でき、コンパイルされたクエリ、構文チェック、SQLインジェクションなどの利点が得られます。 – dhinesh

答えて

10

気になるフィールドにUNIQUEキーを作成し、その後に整合性エラーを検出します。

+2

これは本当に唯一の方法ですが、そうしないと、失敗が気付かれない競合状態になります。最初にチェックして、まだレコードがない場合は、既存のチェックとレコードの追加の間に誰かがレコードを追加できる可能性を残しています。 – AgentConundrum

+0

おかげさまでIgnacio Vazquez-AbramsとAgentConundrum! – t0mgs

関連する問題