2017-06-19 3 views
0

Das ist mein PHP-Code und ich habe mobile_number als Primärschlüssel verwendet und ich möchte neue Benutzer aus einer Android-App einfügen, wo es keine doppelten Benutzer basierend auf mobile_number gibt.PHP-Registrierung - keine doppelten Zeilen zulassen

<?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); 
} 
+1

Nur zu sagen, aber es gibt ** VIELE ** Tippfehler in den Spaltennamen und Daten, die Sie einsetzen. – Loko

+1

Wir nennen ihn [Little Bobby Tables] (https://xkcd.com/327/), zum Thema, was ist dein genaues Problem? Wenn die Mobiltelefonnummer primär ist, kann cou keine doppelten Zeilen pro Handynummer haben, wenn Sie genau die gleiche strenge Validierung haben. – Timmetje

+0

Warum verwenden Sie keine Handynummer als primäre Spalte – Ravi

Antwort

0

Sie können Benutzer von PHP mysqli_error & mysqli_errno unmittelbar nach mysql_query() Funktion aufrufen. Diese Funktionen enthalten Details zum Fehler & Fehlernummer bei der letzten Operation mit Datenbank. Zu sagen, in dem Code ein:

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); 
} 

nur sicher, dass nicht machen eine Operation gegen Datenbank zwischen dem mysqli_query laufen() & den obigen Abschnitt

Dann mit Fehler & errno in der Hand, können Sie die Benutzer darauf aufmerksam machen dass jemand mit seiner Handynummer registriert wurde.

0

wenn db von registertion verhindert Benutzer dieser alredy registrierten Benutzer bedeuten:]

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

Sie können versuchen, Ihre Handy-Nummer Spalte in der Datenbank mit eindeutiger Einschränkung ändern. Wenn also die Handynummer doppelt vorhanden ist, können Sie die Daten nicht in die Datenbank einfügen, und es wird ein Fehler zurückgegeben.

Im Folgenden finden Sie eine Beschreibung der SQL-Eindeutigkeitsbedingung. Hoffe das hilft.

SQL UNIQUE Constraint

Verwandte Themen