Reputation: 53
I have to select records based on current system date . If i hard code date value , query works fine but if i modify it to
$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);
query fails. Any idea what is worng here.
Upvotes: 4
Views: 4877
Reputation: 9044
When you are using codeigniter try to use active records inside your query it is better, faster, and secure. for comparing date with current date in active record put this code:
$this->db->where('date', 'CURDATE()', FALSE);
Upvotes: 2
Reputation: 1
$this->db->select();
$this->db->from('post_job');
$this->db->where("last_date >", 'CURDATE()', FALSE);
$query=$this->db->get();
return $query->result();
Upvotes: 0
Reputation: 2995
You need escape $date1
, something like '$date1'
in query. And what format you use for date in database?
Also is better solution use 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
));
Upvotes: 0
Reputation: 2522
$date1=date('Y-m-d H:i:s');
$date1 is a string.you need to put the $date1 inside '' i.e '$date1' in the query.
Hope it will work for you.
Upvotes: 2
Reputation: 7475
Try:
$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."'");
Upvotes: 1