我正在尝试测试用户是否已使用rowcount
激活了帐户。目前,即使我故意编辑数据库数据失败,它也会返回正值。
我测试了SQL,看是否是问题所在,它似乎返回了预期值。我假设这与我的PHP代码有关
try
{
$db = new Database;
$query = "SELECT COUNT(*),accountStatus, email FROM users WHERE email = :email AND accountStatus ='Active'";
$stmt = $db->prepare($query);
$stmt->bindValue(':email', $email);
$stmt->execute();
$count = $stmt->rowCount();
}
catch(Exception $e)
{
$errors[] = ["name" => "email", "error" => "Something went wrong contact the administrator or try again later"];
}
if(count($count > 0))
{
return true;
}
else
{
return false;
}
答案 0 :(得分:2)
来自docs:
PDOStatement :: rowCount()返回受相应PDOStatement对象执行的最后一个DELETE,INSERT或UPDATE语句影响的行数。
如果关联的PDOStatement执行的最后一条SQL语句是SELECT语句,则某些数据库可能返回该语句返回的行数。但是,并非所有数据库都能保证这种行为,便携式应用程序不应该依赖这种行为。