まず、この質問で私がまだ Mysql コードを使用していることを確認しようとしていることを述べさせてください。これは、私が PDO を初めて使用するためであり、トラブルシューティングを行うために、SQL とクエリが機能していることを確認したかったため、知っていることを使用しました。関数が機能し、スクリプトが実行されるようになったら、PDO に変換します。
これが私が持っている質問です。ユーザーを電子メール リスト (データベース) に登録するフォームを送信しています。すべての情報を取得し、DB に挿入します。これまでのところ、これはすべて機能します。私のコールバック関数は、このユーザーがすでにDBにいるかどうかを確認することになっています。
一意の列として設定されている電子メール列に基づいて、DB から行が返されるかどうかをテストしていました。問題は、ユーザーが既に DB にいる場合でも、SQL が「重複エントリ」という行を返すため、結果としてコードが DUPLICATE ENTRY 行を読み取っていることです。誰かが私を正しい方向に向けることができますか?
私のjQueryコード...
$('#contForm').submit(function() { //contForm is the name of my form
var formData = $(this).serialize();
$.post('contact.php',formData,dispAdd); //dispAdd is the callback
function dispAdd(result) {
if (!result) {
$('#main').html('<div>Your have been added to the mailing list</div>');
} else {
if ($('#fail').length==0) {
$('#main').append('<div id="fail">This email address is already subscribed to our mailing list</div>');
}
}
}
return false;
});
私の PHP/SQL スクリプト
function dispAdd()
{
$email= $_POST['email'];
$sql= "SELECT * FROM mailList WHERE email = '$email'";
$result= mysql_query($sql) or die(mysql_error());
$rows = array();
if(mysql_num_rows($result) > 0)
{
while ( $row = mysql_fetch_assoc($result)) {
$rows[] = $row;
}
echo json_encode( $rows );
}