【发布时间】:2023-03-09 09:10:01
【问题描述】:
为什么这部分代码即使不应该返回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 manual 声明rowCount() 与SELECT 查询存在一些问题,但我找不到返回受SELECT 查询影响的行数的解决方法。
【问题讨论】:
标签: php mysql pdo rowcount prepared-statement