如何验证已存在于数据库中的手机号码?

时间:2016-07-21 12:19:30

标签: php mysql

我有driver_info表,因为我想分别插入参数driver_name,vehicle_no,license_no,mob_no,photo等各种驱动程序的记录,但我必须避免重复手机号码,我正在尝试下面的代码检查手机号码的重复,但它不起作用,并给出“成功注册!!!”消息。

if(isset($_POST['submit']))
{

$m_no = mysql_real_escape_string( $_POST['m_no']);
$query1 = "SELECT mob_no FROM driver_info WHERE mob_no='$m_no'";
    $result1 = mysql_query($query1) or die(mysql_error());

    if (mysql_num_rows($result1)){
        echo '<script language="javascript">';
    echo 'alert("Mobile_No is Already Exist...."); location.href="signup.php"';
    echo '</script>';
    }
    else{

$v = $_POST['n'];   
$name = $_POST['nme'];
$v_no = $_POST['v_no'];
$l_no = $_POST['l_no'];
$m_no = $_POST['m_no'];
$photo = $_FILES['txtphoto']['name'];
$stat = $_POST['stat'];

$query ="INSERT INTO
driver_info(driver_name,vehicle_no,license_no,mob_no,photo,status,seller_id)
VALUES('$name','$v_no','$l_no','$m_no','$photo','$stat','$v')";

$result = mysql_query($query);

copy($_FILES['txtphoto']['tmp_name'],"Picture/".$photo);
if($result==1)
    {
        echo '<script language="javascript">';
    echo 'alert("successfully registered!!!"); location.href="index.php"';
    echo '</script>';
    }
    else
    {
      echo '<script language="javascript">';
    echo 'alert("Something Went Wrong!!! :("); location.href="index.php"';
    echo '</script>';
    }
    //mysql_close(@mysql_connect);
}   
}
?>

1 个答案:

答案 0 :(得分:0)

一些事情。

首先,您应该放弃已弃用的mysql_ *函数并继续使用mysqli或PDO,并且不要忘记使用预准备语句。

Seondly: 如果我没有弄错,你的mob_num列是整数类型,如果是这样你应该在这里删除单引号: mob_no = '$ m_no'

第三

使用insert语句,你应该厌倦了你的数字类型的单引号,它们可能会导致与数据类型相关的问题。

最后:

现在不使用现有的单引号系统,最好使用字符串连接来避免所有错误,我将以$query1为例:

你现在拥有的: $query1 = "SELECT mob_no FROM driver_info WHERE mob_no='$m_no'"; 它应该是什么(如果你想保持单引号的话): $query1 = "SELECT mob_no FROM driver_info WHERE mob_no='".$m_no."'";
如果你不再想要使用单引号(取决于数据类型)应该是什么: `$ query1 =“SELECT mob_no FROM driver_info WHERE mob_no =”。$ m_no;

用于调试的小提示,因为您当前不使用预准备语句等,您实际上可以执行此操作:echo $query1;以查看具有实际值的整个查询,这样您就可以看到值如何显示在语句中,您可以在PHPMyAdmin等中轻松运行它,以确保在修改源代码之前SQL中没有任何错误。