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 的新手,所以我可能遗漏了一些容易修复的东西。

谢谢你。

4

2 回答 2

12

你不需要逃避。

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

:name没有任何引号的写作应该可以解决问题。PDO 库已经为您进行了转义。

于 2012-10-08T21:48:15.730 回答
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
}
于 2016-01-14T05:32:58.050 回答