首页 > 解决方案 > 在使用mysql更新数据期间如何检查输入的字段是否已经存在

问题描述

更新.php

<?php

    include_once("connection.php");



   $name=$_REQUEST['name'];
    $email=$_REQUEST['email'];
    $mobno=$_REQUEST['mobno'];
    $id=$_REQUEST['id'];

  $checkemail="SELECT * FROM dhruv_users WHERE email= '$_REQUEST[email] AND id='$id'";

      $checkmob="SELECT * FROM dhruv_users WHERE mobno= '$_REQUEST[mobno]' AND id='$id'";


    $rsemail = mysqli_query($conn,$checkemail);
    $rsmob = mysqli_query($conn,$checkmob);

    $dataemail = mysqli_num_rows($rsemail);
    $datamob = mysqli_num_rows($rsmob);


        if($dataemail >= 1 && $datamob >= 1) {
         echo "data_exists";
    }



    else{



    $query=mysqli_query($conn,"update dhruv_users set name='$name',email='$email',mobno='$mobno' where id='$id'");

        if($query){
                echo "success";
}

else
{
                echo "unsuccess";
}

}   


?>

好的,这是问题所在,我想在更新电子邮件或手机号码时检查电子邮件 ID 和手机号码是否已被其他人占用。但是当我提交数据时,它显示电子邮件 ID 已被使用,因为我已经在使用该电子邮件 ID 和手机号码。

我想检查其他人而不是我是否使用该电子邮件 ID 和手机号码。

标签: phpmysql

解决方案


我只是重新编写您的代码并更改它的某些部分,以便它可以给您想要的结果。但在此之前,我会建议你阻止注入并使用 mysqli,而不是旧的。

<?php
    include_once("connection.php");

    $name=$_REQUEST['name'];
    $email=$_REQUEST['email'];
    $mobno=$_REQUEST['mobno'];
    $id=$_REQUEST['id'];

    $sql_check = "SELECT * FROM dhruv_users WHERE email = '".$email."'
                  OR mobno = '".$mobno."'" ;
    $res_check = mysql_query($sql_check) ;
    $row_check = mysql_fetch_array($res_check) ;

    if(!empty($row_check)){
        echo "data_exists";
    }
    else{
        $query=mysqli_query("update dhruv_users set name='$name', email ='$email', mobno ='$mobno' where id='$id'");
        if(mysql_affected_rows() > 0){
            echo "Success" ;
        }
        else{
            echo "Update unsuccessful" ;
        }
    }
?>

推荐阅读