2017-10-11 8 views
-2

이 코드 줄을 사용하여 사용자 이름이 이미 데이터베이스에 있는지 확인합니다. 사용자가 없으면 만들 수 있습니다. echo 'username already exist'내 PHP 사용자 이름 줄이 내 데이터베이스에 사용자 이름이 이미 있는지 확인하지 않습니다.

if(!DB::query('SELECT username FROM users WHERE username=:username', array(':username'=>$username))){ 
    //create user 
    DB::query('INSERT INTO users VALUES (null, :username, :password, :email)', array(':username'=>$username, ':password'=>password_hash($password, PASSWORD_BCRYPT), ':email'=>$email)); 
    echo "SUCCESS!"; 
} else { 
    echo 'USER ALREADY EXIST'; 
} 
+0

무엇이 당신 질문입니까? 당신이 가진 문제는 정확히 무엇입니까? – FluffyKitten

답변

0

SELECT COUNT(id)에 변경, 당신이 원하는 것은 매우 명확하지 않다.

$pWord = password_hash($password, PASSWORD_BCRYPT); 

$chkUname = $dbconnect -> prepare("SELECT username FROM users WHERE username=:username"); 
$chkUname -> bindParam(':username', $username); 
$chkUname -> execute(); 

$rowCoun = $chkUname -> rowCount(); 

if($rowCoun > 0){ 
    echo "USER ALREADY EXIST"; 
}else{ 
    $addUsr = $dbconnect -> prepare("INSERT INTO users VALUES (null, :username, :password, :email)"); 
    $addUsr -> bindParam(':username', $username); 
    $addUsr -> bindParam(':password', $pWord); 
    $addUsr -> bindParam(':email', $email); 

    if($addUsr -> execute();){ 
     echo "SUCCESS!"; 
    }else{ 
     echo "SOMETHING WENT WRONG"; 
    } 
} 
0

SQL 쿼리를 사용하면 true 또는 false가되지 않습니다. 이 라인을 사용하면 0 또는 1 라인의 데이터를 얻을 수 있습니다. 쿼리의 응답을 저장 한 다음 반환 된 줄 수에 액세스 할 수 있습니다. 이 번호가 데이터베이스에없는 0 => 사용자 이름인지 확인하십시오.

+0

는 이미 가진 것을 시도 : \t \t \t \t {("SELECT '[0] ==) $ 질의'(폭발) 경우 \t \t \t \t \t \t \t \t \t $ 데이터 = $ 명령문 -> fetchAll(); \t \t \t \t return $ data; \t \t \t \t} –

0

난 당신이 사용자를 확인하려는 경우 이미 존재하거나 당신이 시도하고 볼 괜찮다 음 아닌 경우, 단지 SELECT username

if (!DB::query('SELECT COUNT(id) FROM users WHERE username=:username', array(':username'=>$username))) { 
    //create user 
    DB::query('INSERT INTO users VALUES (null, :username, :password, :email)', array(':username'=>$username, ':password'=>password_hash($password, PASSWORD_BCRYPT), ':email'=>$email)); 
     echo "SUCCESS!"; 
} else { 
    echo 'USER ALREADY EXIST'; 
}