2013-08-07 73 views
0

我目前正試圖弄清楚如何將索引數組保存到我的數據庫中的字段。也就是說,我知道一個數組不能保存到數據庫,但是你可以序列化它,或者使它崩潰並保存。我不知道我應該使用哪一個。我不想在一個單元中保存一組項目。我需要在列中逐個保存項目列表。所以我的問題是我需要使用序列化方法,implode還是別的?這裏是我的代碼和我試圖保存的數組的一瞥。保存索引數組

public function findPolicyIds($coverageId = null) { 
    $policyid = $this->Policy->find('all', array(
     'recursive' => -1, 
     'conditions' => array('Policy.coverage_id' => $coverageId), 
     'fields' => array('Policy.id'))); 

     foreach($policyid as $id) { 
      $all[] = $id['Policy']['id']; 




     } 
     return $all; 
} 


Array 
(
[0] => 5202834f-111c-4a76-8b33-1ed8ae78509d 
[1] => 5202834f-2ba8-4957-91db-1ed8ae78509d 
[2] => 5202834f-356c-49a1-beeb-1ed8ae78509d 
[3] => 5202834f-3b40-453f-a491-1ed8ae78509d 
+0

我會去與序列化,一個類似的問題已被問:http://stackoverflow.com/questions/13197255/serialize-vs-implode – Sixthpoint

+0

我沒有看到那篇文章,謝謝! – SkillSet

回答

1

這取決於。

這可能是給你的最佳答案。

做任何你喜歡的事情,只要它不會在寫入和讀取之間神奇地破壞數據。

Lemme花點時間代您探索一些選項。

  • var_export() - 可能不是最好的主意,securitywise
  • 連載() - 看起來非常簡單
  • 破滅() - 看起來非常簡單
  • json_encode() - 看起來非常簡單

可能還有其他更晦澀的選項。如果你喜歡,你甚至可以用XML構建複雜的數據集。

或者,爲什麼不規範化架構並添加一個新表來呈現數組數據?在未來,標準化會減少你的培根。

+1

在原始表格中添加新表格和'hasMany()'關係是實現它的最安全的方法。 – Derek

+0

我無法添加其他表格。原因是因爲我已經擁有的關係。我需要將這些ID保存到另一個表中,其中PolicyId是外鍵。 – SkillSet