如何在不知道記錄的ID的情況下更新單個字段?我有用戶的用戶名,我不想通過查詢獲取ID來浪費資源。CakePHP savefield()不知道記錄的ID
注意:我知道我可以通過updateAll()
來實現這個目標,但是這個接縫就像過度殺人一樣,但是有沒有更好的方法?
我可以如何限制updateAll()
只搜索一條記錄,然後完成,因爲我不希望它只有一個可能的匹配時繼續搜索。
如何在不知道記錄的ID的情況下更新單個字段?我有用戶的用戶名,我不想通過查詢獲取ID來浪費資源。CakePHP savefield()不知道記錄的ID
注意:我知道我可以通過updateAll()
來實現這個目標,但是這個接縫就像過度殺人一樣,但是有沒有更好的方法?
我可以如何限制updateAll()
只搜索一條記錄,然後完成,因爲我不希望它只有一個可能的匹配時繼續搜索。
updateAll()
是在這種情況下去的路。
所有其他保存方法都需要知道ID。
您也可以使用query()
方法:$this->Model->query($sql)
但是,請記住,值不會在這種方法自動轉義。
如果你使用的是Cake(或者其他任何框架),那麼你就會犧牲一些效率和不必要的查詢。但是,您仍然可以運行自定義查詢。例如,如果您知道用戶名並嘗試更新first_name字段,則可以執行以下操作:
$this->User->query("UPDATE users SET first_name = '$new_firstname' WHERE username = '$username'");
這是因爲犧牲了效率,我試圖儘可能提高查詢效率。感謝您的輸入! – Paramount 2011-04-30 18:16:21
感謝您對'query()'的提示而不是轉義。除非我注意到性能問題,否則我會堅持使用'updateAll()'。 – Paramount 2011-04-30 18:10:45
'updateAll()'是最好的選擇,'query()'應儘可能避免。 – Arjan 2011-04-30 18:55:08