最近,我再次注意到CodeIgniter的ActiveRecord庫中一個令人難以置信的邏輯錯誤。Buggy加入CodeIgniter ActiveRecord
當我嘗試在連接中使用「AND」時會出現問題。
實例查詢:
$this -> db -> join(
'predict',
"predict.id_predict = portion.id_predict AND event.id_event = 5",
'left'
);
結果:
LEFT JOIN `predict` ON
`predict`.`id_predict` = `portion`.`id_predict`
AND event.id_event = 5
但它應該是更容易:
LEFT JOIN `predict` ON (
`predict`.`id_predict` = `portion`.`id_predict`
AND `event`.`id_event` = 5
)
有什麼辦法防止這種錯誤呢?
@RaphaëlAlthaushttp://ellislab.com/forums/viewthread/152221/檢查後仍然患有視力障礙? – motto
問題是第二個子句中缺少反引號還是丟失了括號?我想知道我的視力是否也在玩,因爲我想這兩種形式都會返回相同的結果。 – halfer
實際問題是什麼?損壞/錯誤的數據返回?一個錯誤?後面的勾號不應該對查詢產生影響,但允許您使用非標準的標識符名稱。即使'event.id_event'沒有反標,它也不應該影響結果。額外的括號並不需要有一個有效的SQL語句,儘管它可能有助於將您的意圖傳達給其他人閱讀該語句。 – Wolf