我有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);
}
}
?>
答案 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中没有任何错误。