我發現我需要編寫查詢,而無需使用CI的活動記錄頻繁,例如:未使用CI活動記錄錯誤?
$query = "INSERT INTO votes (userid, itemId) VALUES ({$userId},{$itemId})
ON DUPLICATE KEY UPDATE weight = {$vote}";
$query = $this->db->query($query);
我應該擔心,因爲這種性能或安全性的損失?
我發現我需要編寫查詢,而無需使用CI的活動記錄頻繁,例如:未使用CI活動記錄錯誤?
$query = "INSERT INTO votes (userid, itemId) VALUES ({$userId},{$itemId})
ON DUPLICATE KEY UPDATE weight = {$vote}";
$query = $this->db->query($query);
我應該擔心,因爲這種性能或安全性的損失?
您可以使用查詢綁定,您可以享受安全性帶來的靈活性。但你以後我不能切換數據庫。
http://codeigniter.com/user_guide/database/queries.html
實施例:
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));
使用結合的第二個好處是這些值是 自動轉義,生產出更安全的查詢。你不必 記得手動轉義數據;發動機自動爲你做 。
表現不應該是一個問題。如果有的話,它可能會更好。
你會放棄CodeIgniter的安全功能。
檢查了這一點:
而且這裏有一個小更多的光線閱讀:
我已經更新了這個問題,Usman建議使用綁定是否足夠安全? –
您應該擔心可移植性ON DUPLICATE KEY是MySQL特有的功能,它不適用於任何其他RDBM。 – RageZ
由於您沒有顯示如何保護您的聲明,因此我們無法確定其安全損失。性能明智,它可能會稍微快一些,因爲它不需要通過構建器(CI的AR不是一個AR,但是查詢生成器) – Gordon
@Gordon更新了問題以顯示我如何查詢。 –