2011-10-26 17 views

Trả lời

12

kích hoạt R ecords tự động thoát khỏi truy vấn của bạn, vì vậy CURDATE() sẽ được chuyển thành một chuỗi thay vì sử dụng hàm mysql. bạn nên tắt runing truy vấn của bạn bằng tay, một cái gì đó giống như

$query = $this->db->query("SELECT id,name FROM store WHERE dr = '1' AND end >= CURDATE()"); 

Hoặc nếu bạn vẫn muốn sử dụng AR, bạn có thể vượt qua một FALSE như tham số thứ ba của $this->db->where để tránh tự động thoát bởi CI:

$this->db->select('id,name') 
     ->where('dr','1') 
     ->where('end >=', 'CURDATE()', FALSE); 
$query = $this->db->get('store'); 
+0

nó phải là NGAY() đối với loại dấu thời gian – user782104

+0

thêm 'FALSE' sẽ là chìa khóa. cảm ơn @DamienPirsy –

3

tôi không sử dụng các hồ sơ hoạt động trong CI nhưng tôi sẽ đoán rằng CURDATE() đang được đặt trong một chuỗi trong truy vấn vì vậy nó làm WHERE end >= 'CURDATE()' như trái ngược với WHERE end >= CURDATE()

Nếu end là một lĩnh vực timestamp thử ...

$this->db->where('end >=', time()); 

Nếu end là một lĩnh vực datetime thử ...

$this->db->where('end >=', date("Y-m-d H:i:s")); 
Các vấn đề liên quan