为什么这部分代码true
即使不应该返回,也会返回?
$stmt = $dbh->prepare("SELECT COUNT(`user_id`) FROM `users` WHERE `username`= :username LIMIT 1");
$stmt->bindParam(':username', $username);
$stmt->execute();
return ($stmt->rowCount() == 1) ? true : false;
如果我在已经注册的字段中输入用户名,它会返回 true,然后输出:
That username has already been taken!
但是如果我输入一个尚未注册的用户名,它仍然返回 true 并输出上面的行。我不确定这是为什么以及如何解决。
我知道PHP 手册指出查询rowCount()
存在一些问题SELECT
,但我找不到返回受SELECT
查询影响的行数的解决方法。