PHP注册 - 不允许重复行

时间:2017-06-19 14:21:09

标签: php

这是我的PHP代码,我使用mobile_number作为主键,我想从Android应用中插入新用户,其中没有基于mobile_number的重复用户。

<?php
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
$link = mysqli_connect("localhost", "root", "", "blood");
$response = array()
if ( isset($_POST['frist_name'])&& isset($_POST['last_name'])&&isset($_POST['gendar']) &&isset($_POST['don_date'])&&isset($_POST['birth_date'])&& isset($_POST['blood'])&&isset($_POST['mobile_number']) && isset($_POST['pass'])  && isset($_POST['email'])) 
{   

$frist_name = $_POST['frist_name'];
$last_name = $_POST['last_name'];
$gendar = $_POST['gendar'];
$don_date = $_POST['don_date'];  
$birth_date = $_POST['birth_date']; 
$blood=$_POST['blood'];
$mobile_number = $_POST['mobile_number'];
$pass = $_POST['pass'];
$email = $_POST['email'];  



$result = mysqli_query($link,"Insert into login(frist_name,last_name,gendar,don_date,birth_date,blood,mobile_number,pass,email,latitude,longitutde,address) values('$frist_name','$last_name','$gendar','$don_date','$birth_date','$blood','$mobile_number','$pass','$email','0','0','not iserted')");

if ($result)
{

    $response["success"] = 1;
    $response["message"] = "Registration successfully.";    
     echo json_encode($response);

}
else
{
  $response["success"] = 0;
  $response["message"] = "Oops! An error occurred.";
  echo json_encode($response);  
}

3 个答案:

答案 0 :(得分:0)

您可以使用PHP的mysqli_error&amp;调用mysql_query()函数后立即mysqli_errno。这些功能包括有关错误的详细信息。最新操作与数据库的错误号。在代码中说:

if ($result)
{
  $response["success"] = 1;
  $response["message"] = "Registration successfully.";    
  $response["errno"] = mysqli_errno($link);
  $response["error"] = mysqli_error($link);
  echo json_encode($response);
}
else
{
  $response["success"] = 0;
  $response["message"] = "Oops! An error occurred.";
  $response["errno"] = mysqli_errno($link);
  $response["error"] = mysqli_error($link);
  echo json_encode($response);
}

JUST确保不要在mysqli_query()和amp;之间对数据库运行任何操作。上述部分

然后出现错误&amp;手头上的错误,您可以让用户知道某人已使用他们的手机号码注册的事实。

答案 1 :(得分:0)

当db阻止用户注册时,这意味着用户alredy注册:]

else
{
  $response["success"] = 0;
  $response["message"] = "an user alredy registered";//this is solution
  echo json_encode($response);  
}

答案 2 :(得分:0)

您可以尝试使用唯一约束更改数据库中的移动电话号码列。因此,当存在重复的移动号码时,db将不允许您插入数据并返回错误。

以下是有关SQL唯一约束的说明。希望这会有所帮助。

SQL UNIQUE Constraint