【问题标题】:How to Count all with condition Date Now如何计算所有条件日期现在
【发布时间】:2021-12-27 06:49:34
【问题描述】:

我尝试用我的网络中的日期条件计算我的所有行,但我不知道为什么我的代码仍然不起作用。我尝试在我的列(created_at)前面添加(日期),但结果:

错误“消息:在布尔值上调用成员函数 num_rows()”

这是我的代码:

    public function hitungPerbaikan()
    {
        $date = new DateTime('now');
        $curr_date = $date->format('Y-m-d');
        $this->db->where('update_at', $curr_date);
        $this->db->where('status >=', '2'); 
        $this->db->from('tbl_kerusakan');
        return $this->db->count_all_results();
    }

【问题讨论】:

  • 似乎查询在 SQL Server 上生成错误,因此 PHP 中的结果是 false 而不是数据集,这就是导致 count_all_results() 失败的原因。您最好调用$db_result = $this->db->get(),测试$db_result 是否为false(失败),然后在不是错误时返回$db_result->num_rows()
  • 如果我猜测错误的原因很可能update_atdatetime 列并且您的连接/服务器有set dateformat dmy 有效。尝试使用$date->format('Ymd') 来查看错误是否消失。这将在今天生成20211227,而不是2021-12-27,并在set dateformat dmy 生效时成功转换为datetime 值。
  • 感谢您的帮助,我现在知道日期时间格式 sqlserver,最后我在哪里添加 >= 以使其工作

标签: sql sql-server iis codeigniter-3


【解决方案1】:

感谢您的建议,它确实帮助我弄清楚,这是我现在的代码

public function hitungPerbaikan()
{
    $date = new DateTime('now');
    $curr_date = $date->format('ymd');
    $this->db->where('update_at>=', $curr_date);
    $this->db->where('status >=', '2');
    $this->db->from('tbl_kerusakan');
    $db_result = $this->db->get();
    return $db_result->num_rows();
}

【讨论】:

    猜你喜欢
    • 2016-12-09
    • 2019-04-10
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2019-08-24
    • 2019-04-30
    相关资源
    最近更新 更多