PHP使用PDO检查用户是否存在

3

我正在设置一个函数,以便检查传递的用户名是否存在于我的数据库中的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的新手,所以可能错过了一些易于修复的东西。
谢谢。
2个回答

12

不需要转义。

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

直接使用:name而不加任何引号应该就可以了。PDO库已经为你转义了。


0

尝试下面的SQL查询

$query="SELECT username FROM users WHERE username = 'name'";
$query_res =   $con->query($query);
$count= count($query_res->fetchAll());
if($count > 0){
 //user exists
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接