首页 > 解决方案 > 为什么这会抛出错误的结果?

问题描述

因此,对于上一个问题,我已将代码更新为以下

          $stmt = $conn->prepare("SELECT count(id) FROM activities WHERE userId = ? AND status = ? AND DATEDIFF('$date', next_due) >= 1");
          $stmt->bind_param("ss", $userId, $status);
          $stmt->execute();
          $stmt->store_result();
          $numrows = $stmt->num_rows;
          echo $numrows;

它不再抛出错误,而是将 $numrows 返回为 1,但是我知道返回的行数应该是 2(我知道它应该是 2,因为我在表中有 2 个相同的行用于测试目的)。我试过SELECT count(*)了,但这也给了我一个 1。

标签: phpcount

解决方案


感谢您的建议。最后,我选择了以下内容;

    $stmt = $conn->prepare("SELECT * FROM activities WHERE userId = ? AND status = ? AND last_completed != ? AND DATEDIFF(?, next_due) >= 1");
    $stmt->bind_param("ssss", $userId, $status, $null, $date);
    $stmt->execute();
    $result = $stmt->get_result();
      echo $result->num_rows;
          ?>

推荐阅读