只是關於codeigniter Active Records的get_where
函數的問題。我希望得到它應該是這樣的查詢:codeigniter get_where與檢查值中的mysql函數
Select * from foo
where date = STR_TO_DATE('$month/$day/$year','%m/%d/%Y')
and time = STR_TO_DATE('$hour:$minute$ampm', '%l:%i%p')
現在,我創造了我的模型的功能出現這樣的:
public function validate_if_existing($month,$day,$year,$hour,$minute,$ampm)
{
$event_date = "STR_TO_DATE('$month/$day/$year','%m/%d/%Y')";
$event_time = "STR_TO_DATE('$hour:$minute$ampm', '%l:%i%p')";
$this->db->flush_cache();
$query = $this->db->get_where('foo',array('event_date' => $event_date,'event_time'=> $event_time));
return $query->num_rows();
}
但它返回0
行,我希望它是1
。我試圖檢查$event_date
和$event_time
內容,它看起來和我預期的完全一樣。像這樣:
STR_TO_DATE('01/01/2012','%m/%d/%Y')
我做錯了嗎?無論如何要解決這個問題?
對數據庫首先運行您的原始查詢(SQL),並查看它是否返回任何東西 – zarkoz
是的,它返回一個基於我給出的數據的行。 – KaHeL
這些值將在查詢中轉義。運行'$ this-> db-> last_query();'並檢查生成的查詢。 – air4x