首页 > 解决方案 > 在php,mysql中插入记录重复

问题描述

我有时注意到在数据库中插入时有重复的数据。它并不总是发生,但这里可能是什么问题?这是我的代码。

$sql = $conn->query("INSERT INTO registration(lrn, department_id, fname, mname, lname, contact_no, email, persontocontact, emergency_contact, agreement, statuss) VALUES('".$_POST['userid']."','".$_POST['departmentid']."', '".$_POST['fname']."', '".$_POST['mname']."', '".$_POST['lname']."', '".$_POST['contact_no']."','".$_POST['email']."', '".$_POST['persontocontact']."', '".$_POST['emergency_contact']."', '".$_POST['agreement']."', 'pending')");

if($sql->rowCount() > 0){
    echo "success";
}

标签: phpmysql

解决方案


它有时只发生意味着不是代码在做它,而是用户操作,如在该页面上刷新。

您应该使其更加安全并处理刷新情况,但要回答您的问题,请使用此代码。

$checkid = $_POST['userid'];//Specifically taking it here so you can know this is what we are looking for.
$sql = $conn->query("Select * from registration WHERE lrn = '$checkid'");


if($sql->rowCount() > 0){
   echo "User Already Exists";
}
else
{//Move forward
$sql = $conn->query("INSERT INTO registration(lrn, department_id, fname, mname, lname, contact_no, email, persontocontact, emergency_contact, agreement, statuss) VALUES('".$_POST['userid']."','".$_POST['departmentid']."', '".$_POST['fname']."', '".$_POST['mname']."', '".$_POST['lname']."', '".$_POST['contact_no']."','".$_POST['email']."', '".$_POST['persontocontact']."', '".$_POST['emergency_contact']."', '".$_POST['agreement']."', 'pending')");

if($sql->rowCount() > 0){
   echo "success";
}

}//Main if closes here

推荐阅读