私はデータベースに挿入するスクリプトを持っています。このスクリプトは2つのcronジョブから同時に呼び出されるため、同じデータを同時に(時、分、秒) 。 実際に私はcronジョブを制御することはできませんが、私はそれをスクリプト上に持っています。 行の重複を防ぐ方法はありますか?2つのcronsジョブから重複行を防止する
コード:
function checkDuplicate($email) {
$return = 0;
if($email != ""){
$sql = "SELECT d.id_data as nbre FROM data d WHERE d.email = '" . $email . "' ";
$nbreEmails = $db->run($sql);
$return = (sizeof($nbreEmails) > 0) ? 1 : 0;
}
return $return;
}
if(!checkDuplicate($email)){
$insert = array(
"id_client" => $id_client,
"email" => $email,
"valide" => 1,
"stat" => "valide",
"date_insert" => date("Y-m-d H:i:s"),
"date_refus" => null
);
$db->insert("data", $insert);
}
感謝。
あなたはdb時間と他の列でチェックし、行時間と他の列を挿入することができます。両方が同じ場合は、新しいデータの挿入を停止できます。 –
一意のインデックスを作成する – e4c5
同じ瞬間に行うことはできません。データが存在し、偽を返すかどうかを確認しています。 – user3911183