2016-07-20 10 views
0

Ich machte diesen Code, um zuerst zu überprüfen, ob Benutzer basierend auf Benutzer-ID vorhanden ist, wenn ja, sollte die vorhandene Zeile mit Token-Spalte aktualisieren, aber der Code dupliziert den Benutzer in einer neuen Zeile.Aktualisierung vorhandener Facebook Benutzer Token

$userid = $user['id']; 

$check="SELECT COUNT(*) FROM user WHERE userid = '$userid'"; 
$update="UPDATE user SET token='$accessToken' WHERE userid = '$userid'"; 
$rs1 = mysqli_query($db,$update); 


$rs = mysqli_query($db,$check); 
$data = mysqli_fetch_array($rs, MYSQLI_NUM); 
if($data[0] > 1) { 


     echo "User exists, token updated<br/>"; 
} 
else 
{ 
$newUser="INSERT INTO user (userid, token) VALUES ('{$userid}', '{$accessToken}')"; 
    if (mysqli_query($db,$newUser)) 
    { 
     echo "User added."; 
    } 
    else 
    { 
     echo "Not working.<br/>"; 
    } 
}` 

Könnte mir jemand sagen, wo das Problem ist. Vielen Dank!

+0

Sie verwenden die UPDATE-Funktion, bevor Sie überprüfen, ob sich der Benutzer in der Datenbank befindet. Aber dieser ganze Code ist seltsam, um ehrlich zu sein. – luschn

+0

@luschn Ich denke $ check, überprüft $ update tatsächlich und sollte den Benutzer aktualisieren? Kannst du mir bitte einen besseren Weg sagen? – moorbes

Antwort

0

Platzieren Sie die $update Abfrage innerhalb des Codeblocks, wo Sie sicher sind, dass Benutzer existiert.

if($data[0] > 1) { 
     $update="UPDATE user SET token='$accessToken' WHERE userid = '$userid'"; 
     $rs1 = mysqli_query($db,$update); 

     echo "User exists, token updated<br/>"; 
} 
Verwandte Themen