如何讓Cake使用REPLACE INTO而不是INSERT INTO?我有一個將數據保存到數據庫的操作,但我不想重複輸入。主鍵(id)是唯一的,如果該值已經存在,我不希望它作爲新行被輸入。CakePHP:覆蓋現有的重複數據
正在保存的數據也是動態生成的,所以退出時出錯並不合適。
編輯 Initally我保存的數據是在一個單一的大陣
$data = Array([0] => 'value1', [1] => 'value2', [2] => 'value3') etc
我通過這個數組試圖循環,節省了每個值作爲一個新的記錄
foreach ($data as $value) {
$save_data['Model'] = array('field' => $value);
}
Classregistry::init('Model')->saveAll($save_data);
我正在使用Classregistry,因爲我正在將數據保存到不同的模型。目前,當試圖插入重複記錄時,此代碼會變得很糟糕,因爲'field'是唯一的索引。在使用CakePHP之前,我只是使用了REPLACE INTO語法而沒有任何問題。我想在Cake中實現類似的功能。
我目前唯一的解決辦法是允許輸入重複的,但只有將它們分組顯示唯一行。
值得注意的有這樣做的其他方式,如前設置模型上的'id' PARAM做保存。 – jeremyharris 2012-04-12 15:40:07
我不確定我是否清楚。我有大量未知大小的數據。我想循環數組並將每個條目保存爲新記錄,但避免插入重複項。 – Robert 2012-04-12 15:45:07
同樣的想法適用。你怎麼知道它是獨一無二的?你在大陣中有身份證嗎?如果是這樣,請使用它。否則,你需要循環查找其他一些獨特的字段。您可能需要更改您的問題,幷包含可能的數組值的片段。 – jeremyharris 2012-04-12 15:47:45