Php 在sql中存储具有相同输入名称的多个值
我需要在数据表中插入form的值 这是我的考试表Php 在sql中存储具有相同输入名称的多个值,php,Php,我需要在数据表中插入form的值 这是我的考试表 <form method="post" action=""> 1<input type="text" name="answer"> 3<input type="text" name="answer"> 5<input type="text" name="answer"> 7<input type="text" name="answer"> <
<form method="post" action="">
1<input type="text" name="answer">
3<input type="text" name="answer">
5<input type="text" name="answer">
7<input type="text" name="answer">
<input type="submit" name="submit">
</form>
尝试将您的HTML代码更改为此
<form method="post" action="">
1<input type="text" name="answer[]">
3<input type="text" name="answer[]">
5<input type="text" name="answer[]">
7<input type="text" name="answer[]">
<input type="submit" name="submit">
</form>
上面是打印输出的$\u POST
变量,如soprint\r($\u POST)
现在,您可以轻松地在PHP中获得所有答案输入,并将其转换为json,如下所示
$answer=json_encode($_POST['answer']);
但是,由于您要将其保存在mysql中,我建议使用serialize()
而不是json\u encode()
。请阅读有关serialize()
命名字段answer[]
,然后您可以在php中作为数组进行访问。在PHP中如何处理该数组当然取决于您自己—它存储什么类型的值,不存储什么类型的值?您有什么解释为什么建议使用序列化而不是json?如果序列化该值,则表示数据库语言中的数据是特定的。如果有什么不同的话,我认为他们应该规范化他们的数据库,而不是在一列中存储多个值。@MagnusEriksson你是对的,我同意你的观点。我建议使用serialize()
,因为它速度更快,而且如果我构建这样的东西,我会使用它。如果这些数据有进展,我建议使用json_编码以实现可移植性。好问题,谢谢。“我建议serialize(),因为它更快”-事实上,serialize和unserialize(这需要考虑)非常慢,所以我不会自动同意。这只是一个建议,没有人真正需要相信我的话。我刚发现速度更快。这是一个很好的讨论话题,我相信关于这个问题会有很多不同的答案。谢谢你提到@MagnusEriksson
<form method="post" action="">
1<input type="text" name="answer[]">
3<input type="text" name="answer[]">
5<input type="text" name="answer[]">
7<input type="text" name="answer[]">
<input type="submit" name="submit">
</form>
Array
(
[answer] => Array
(
[0] => first answer
[1] => second answer
[2] => third answer
[3] => fourth answer
)
)