人々
連絡先をデータベースに追加することを承認するために同じスクリプトを使用しようとしていますが、主キー (id) が既に存在する場合、クエリは更新を行います。そこで、INSERT INTO .... ON DUPLICATE KEY UPDATE クエリを設定しました。これは以下のとおりです。
$resultsc = mysql_query("INSERT INTO $contact (id,First,Last,Companyid,userid,Title,PrimaryPhone,SecondaryPhone,PrimaryEmail,SecondayEmail,inserted) VALUES('$id','$first','$last','$companyid','$userid','$title','$phone1','$phone2','$email1','$email2',NOW()) ON DUPLICATE KEY UPDATE (First,Last,Companyid,userid,Title,PrimaryPhone,SecondaryPhone,PrimaryEmail,SecondayEmail) VALUES ('$first','$last','$companyid','$userid','$title','$phone1','$phone2','$email1','$email2') WHERE id='$id'");
if(!$resultsc)
{
echo "<font face='Verdana' size='2' ><center>You have successfully approved this user for access to this site.</center><br><center><input type='button' value='Back' onClick='history.go(-2)'></center>"; die();
}
else
{
echo "<font face='Verdana' size='2' ><center>You have not updated this contact for this site.</center><br><center><input type='button' value='Back' onClick='history.go(-2)'></center>";
}
エラーは発生していませんが、データベースが新しいレコードを更新または挿入していません。そこで、「$contacts」変数をチェックして、正しいテーブルを指していることを確認しました。単独で挿入を行うと、スクリプトは正常に機能します。しかし、このクエリを実行しても何も起こりません。何が問題なのか疑問に思っていますか、それとも既存のキーを選択してチェックする if/else を使用する必要がありますか?