我必须根据当前系统日期选择记录。 如果我硬编码日期值,查询工作正常,但如果我将其修改为
$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);
查询失败。知道这里有什么。
答案 0 :(得分:2)
$date1=date('Y-m-d H:i:s');
$ date1是一个字符串。你需要将$ date1放在''''date1'的查询中。
希望它对你有用。
答案 1 :(得分:2)
当您使用codeigniter时,尝试在查询中使用活动记录,它更好,更快,更安全。 为了将日期与活动记录中的当前日期进行比较,请输入以下代码:
$this->db->where('date', 'CURDATE()', FALSE);
答案 2 :(得分:1)
尝试:
$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."'");
答案 3 :(得分:0)
您需要在查询中转义$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
));
答案 4 :(得分:0)
$this->db->select();
$this->db->from('post_job');
$this->db->where("last_date >", 'CURDATE()', FALSE);
$query=$this->db->get();
return $query->result();