Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想根据codeigniter中的当前日期选择记录,但此查询失败。_Codeigniter - Fatal编程技术网

我想根据codeigniter中的当前日期选择记录,但此查询失败。

我想根据codeigniter中的当前日期选择记录,但此查询失败。,codeigniter,Codeigniter,我必须根据当前系统日期选择记录。 若我硬编码日期值,查询工作正常,但若我将其修改为 $date1=date('Y-m-d H:i:s'); $res=$this->db_model->sql("SELECT * FROM vbl_assignment INNER JOIN vbl_student_course ON vbl_student_course.course_id = vbl_assignment.course_id INNER JOIN vbl_course ON vbl_

我必须根据当前系统日期选择记录。 若我硬编码日期值,查询工作正常,但若我将其修改为

$date1=date('Y-m-d H:i:s');
$res=$this->db_model->sql("SELECT *
FROM vbl_assignment
INNER JOIN vbl_student_course ON vbl_student_course.course_id = vbl_assignment.course_id
INNER JOIN vbl_course ON vbl_assignment.course_id = vbl_course.course_id
WHERE vbl_student_course.student_id =".$this->session->userdata('loggedinstudent')->student_id." AND vbl_assignment.accept_until_date > ".$date1);  
查询失败。知道这里发生了什么吗

试试看:

$res=$this->db->query("SELECT *
FROM vbl_assignment
INNER JOIN vbl_student_course ON vbl_student_course.course_id = vbl_assignment.course_id
INNER JOIN vbl_course ON vbl_assignment.course_id = vbl_course.course_id
WHERE vbl_student_course.student_id =".$this->session->userdata('loggedinstudent')->student_id." AND vbl_assignment.accept_until_date > '".$date1."'");

您需要在查询中转义
$date1
,类似于
'$date1'
。数据库中的日期使用什么格式? 更好的解决方案是使用AR:

    $this->db->join('vbl_student_course', 
         'vbl_student_course.course_id = vbl_assignment.course_id');
    $this->db->join('vbl_course', 
         'vbl_assignment.course_id = vbl_course.course_id');
    $this->db->where(array(
        'vbl_student_course.student_id' => $this->session->
             userdata('loggedinstudent')->student_id,
        'vbl_assignment.accept_until_date >' => $date1
    ));
$date1是一个字符串。您需要将$date1放在查询中的“”内,即“$date1”


希望它对您有用。

当您使用codeigniter时,请尝试在查询中使用活动记录,这样会更好、更快、更安全。 要将日期与活动记录中的当前日期进行比较,请输入以下代码:

$this->db->where('date', 'CURDATE()', FALSE);
$this->db->where('date', 'CURDATE()', FALSE);
$this->db->select();
        $this->db->from('post_job');
        $this->db->where("last_date >", 'CURDATE()', FALSE);
        $query=$this->db->get();        
        return $query->result();