2016-03-15 40 views
0

我試圖在特定日期簽入和結帳之間獲取結果。 我流汗以下錯誤:在簽入和結帳(DATETIME)之間獲取結果錯誤

Error Number: 1064 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '14:00:00 AND b.end <= 2016-03-31 11:00:00' at line 4 

SELECT * FROM properties as a LEFT JOIN reservations as b ON b.room_id = a.room_id WHERE a.client = 7 AND b.start >= 2016-03-01 14:00:00 AND b.end <= 2016-03-31 11:00:00 

Filename: controllers/Transactions.php 

Line Number: 741 

SQL:

$sql = "SELECT * 
     FROM properties as a 
     LEFT JOIN reservations as b ON b.room_id = a.room_id 
     WHERE a.client = $client AND b.start >= $start AND b.end <= $end"; 
     $query = $this->db->query($sql); 

日期時間爲$開始和結束$什麼..我做錯了?由於

+1

我猜你正在使用笨。查看Active Record,以便查詢更加簡單。 –

+0

@VincentDecaux:同意,如果其CI框架使用活動記錄 – devpro

回答

3

您需要添加報價startend日期列,你不能使用日期列不帶引號爲:

b.start >= 2016-03-01 14:00:00 AND b.end <= 2016-03-31 11:00:00 

這應該是:

b.start >= '2016-03-01 14:00:00' AND b.end <= '2016-03-31 11:00:00' 

修改後的查詢:

SELECT * 
FROM properties AS a 
LEFT JOIN reservations AS b ON b.room_id = a.room_id 
WHERE a.client = '$CLIENT' AND b.start >= '$START' AND b.end <= '$END'