본문 바로가기
MySql

MySQL PDO로 사용자가 존재하는지 확인하는 PHP

by 베이스 공부 2021. 1. 25.
반응형

전달 된 사용자 이름이 데이터베이스의 users 테이블에 있는지 확인하기 위해 함수를 설정하고 있습니다. 이를 위해 다음 코드를 사용하고 있습니다.

function usernameCheck($username) {
    $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $stmt = $con->prepare("SELECT username FROM users WHERE username = ':name'");
    $stmt->bindParam(':name', $username);
    $stmt->execute();

    if($stmt->rowCount() > 0){
        echo "exists!";
    } else {
        echo "non existant";
    }
}

그러나 $ username 으로 무엇을 설정해도 exists! 를 되돌릴 수 없습니다. userID 와 같은 추가 열을 확인하기 위해 변경하려고 시도했지만 여전히 작동하지 않습니다. 내 구문이 정확하다고 생각하지만 PDO를 처음 사용하므로 수정하기 쉬운 것이 누락되었을 수 있습니다.

감사합니다.

 

해결 방법

 

탈출이 필요하지 않습니다.

$stmt = $con->prepare("SELECT username FROM users WHERE username = :name");

따옴표없이 : name 을 작성해야합니다. PDO 라이브러리는 이미 이스케이프를 수행합니다.

 

참조 페이지 https://stackoverflow.com/questions/12789953

 

 

반응형

댓글