php - 误报 PDO 行数
问题描述
我正在尝试测试用户是否使用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;
}
解决方案
从文档:
PDOStatement::rowCount() 返回受相应 PDOStatement 对象执行的最后一个 DELETE、INSERT 或 UPDATE 语句影响的行数。
如果关联 PDOStatement 执行的最后一条 SQL 语句是 SELECT 语句,则某些数据库可能会返回该语句返回的行数。但是,不能保证所有数据库都具有此行为,并且不应依赖于可移植应用程序。
推荐阅读
- python - Scikit-learn 管道中的 Keras 模型,具有提前停止功能
- python - 我的 .txt 文件作为一列读入我的笔记本,而不是三个单独的列
- python - selenium python page down - 未知错误:net::ERR_NAME_NOT_RESOLVED
- java - 为什么在这种情况下会发生拆箱?
- c - 如何优化程序的性能С
- python - 构建一个 Discord 机器人来 DM 特定用户 - AttributeError: 'NoneType' object has no attribute 'send'
- flutter - 如何在 Flutter 中更改 Scrollbar 小部件的颜色?
- oracle - 如何知道触发器中 :new 的类型?
- javascript - 我的代码不能绘制任何东西而不是显示白色画布
- ios - 如何将 ContextMenu 与 NavigationLink 一起使用?