我試圖在MySQL數據庫中存儲張貼的Web表單的數據。在MySQL數據庫中存儲複選框數據時使用分隔符
典型地,用一個簡單的文本或數字輸入,每一個輸入具有涉及一種特定quesiton的ID,因此每個應答在表中創建一個新的記錄的「答案」
例如
<input type="text" value="hello" id="qid_101" name="q_101">
當這張貼時,我使用php去除qid號碼並將其存儲在該值。
然而,當複選框的基團具有發佈數據,其結果是一個數組即
<div class="checkboxes">
<div>
<input type="checkbox" value="A " name="checkboxes[]" />
<span class="inline">a</span>
</div>
<div>
<input type="checkbox" value="B" name="checkboxes[]" />
<span class="inline">b</span>
</div>
<div>
<input type="checkbox" value="C" name="checkboxes[]" />
<span class="inline">c</span>
</div>
</div>
給我其中我不能在數據庫中直接存儲陣列命名複選框。
Following the advise of others on SO我打算把數組內爆成一個字符串和故事,然後引用時再次爆炸它。
我有兩個問題:
1)這感覺不好的做法,我,因爲它是反規範化我的數據,但我想不出另一種方式來做到這一點(存儲的答案是唯一相對於用戶和問題ID - 因此將每個複選框的值存儲在相同的問題ID中會破壞站點的其他部分)
2)什麼是使用陣列時好用的分隔符 - 是否有我應該使用的字符列表避免與MySQL避免混淆?
是的 - 我需要了解更多關於聯接表,因爲我目前不使用它們,我懷疑他們是我正在尋找的答案。感謝有關serialize()的信息 - 它存儲和數組作爲一個字符串? – Gideon