codeigniter链查询关键字问题

codeigniter chain query keyword issue

为什么我会出错? 请写出正确的语法

您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 'IN 附近使用的正确语法,log_out_time 作为 OUT,hour_count 作为小时,status 作为状态 FROM (`hr_e' 在第 1 行

SELECT `log_date` as DATE, `log_in_time` as IN, `log_out_time` as OUT, `hour_count` as Hours, `status` as Status
FROM (`hr_employee_attendence`)
WHERE `employee_id` =  '2001170036'
AND `log_date` >= '2017-11-01'
AND `log_date` <= '2017-11-30'

        $query = $this->db->select("log_date as DATE, log_in_time as IN, log_out_time as OUT, hour_count as Hours, status as Status")
                ->where($where)
                ->get("hr_employee_attendence");

IN 是保留字,不能用作alias。换一个。

$this->db->select("log_date as DATE, log_in_time as login ...

您可以通过执行以下 codeigniter 链查询将关键字用作字符串。

$chain_query = $this->db->select("log_date as 'DATE', log_in_time as 'IN', log_out_time as 'OUT', hour_count as 'Hours', status as 'Status', is_late as is_late")
                            ->get_where("hr_employee_attendence", [
                                "employee_id" => $employee_id,
                                "date(log_date) >= date('".$month_day_start."')" => NULL,
                                "date(log_date) <= date('".$month_day_end."')" => NULL,
                                "is_approved" => 1
                            ]);