【问题标题】:SQL Query always returning 1 regardless of result无论结果如何,SQL 查询总是返回 1
【发布时间】:2021-07-28 03:01:48
【问题描述】:

我正在 PHP 中创建一个函数来计算我的 SQL 表中相同电子邮件的数量,但是无论结果如何,该函数都返回 1。这是我的 PHP 代码:

$query = Query($conn, "SELECT COUNT(*) FROM `users` AS total WHERE `email` = '$email");
return $query->fetch();

我已经在 phpmyadmin 中运行了该函数,它返回了正确的计数,但是在 PHP 中它失败了。
笔记: 我有另一个几乎相同的功能,并且可以正常工作:

$query = Query($conn, "SELECT COUNT(*) as total
    FROM `passwords` WHERE `password` = '$pwd'");
return $query->fetch();

【问题讨论】:

  • 如果您从第二个查询中获得结果,这意味着您没有像应有的那样对密码进行哈希处理。
  • 您确定$email 设置正确吗?
  • $email 设置正确,这里是完整代码
  • function GetEmailCount($conn, $email) { $query = Query($conn, "SELECT COUNT(*) as total FROM users WHERE email = '$email'");返回 $query->fetch(); }
  • 你在看$row['total']吗?

标签: php mysql phpmyadmin


【解决方案1】:

您需要使用fetch_assoc(),而不是fetch(),并从结果中提取total 列。

$query = Query($conn, "SELECT COUNT(*) FROM `users` AS total WHERE `email` = '$email");
return $query->fetch_assoc()['total'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2021-08-16
    • 1970-01-01
    • 2012-05-08
    相关资源
    最近更新 更多