0
在使用這樣的碼:CakePHP的模型的find()未擊中的MySQL索引B/C
$Model->find('all', array(
'conditions' => array(
'field' => '1111'
)
));
其中字段是VARCHAR MySQL的字段蛋糕產生這樣的查詢:
SELECT * FROM Models WHERE field = 1111;
,而不是預期的
SELECT * FROM Models WHERE field = '1111';
這也使得MySQL的投整個DB爲int而不是使用字符串索引。 我想優化一個已經工作的系統,由別人編寫,並且quick-grep顯示了我需要「修復」的數千個find。因此,唯一可接受的解決方案應該是模型層或mysql層。
tl; dr:如何使Cake從條件傳遞整數字符串到MySQL作爲字符串而不是數字?
你顯然是在錯誤的瓶頸上工作......耶穌,畢竟你在使用蛋糕。反正它不是最快的框架。在數據庫級別進行優化 - 在這樣一個小用例中 - 與整個調度程序過程完全無關。只是使用find()包裝器,你正在銷燬一百萬個投射優化修復程序。但是什麼,沒人在乎。因爲雖然速度很慢,但它是最強大和最棒的框架。所以繼續編碼,不要爲這些小事煩惱。 – mark 2012-03-06 21:40:26