【问题标题】:Multiple select box values to CSV多个选择框值到 CSV
【发布时间】:2011-07-23 01:50:41
【问题描述】:

我在 HTML 表单中有以下多选框:

<select multiple="multiple" name="fruits">
    <option value="Apple">Apple</option> 
    <option value="Peach" selected="selected">Peach</option> 
    <option value="Banana">Banana</option> 
    <option value="Grapes" selected="selected">Grapes</option> 
</select>

如何将选定的值转换为逗号分隔值的字符串以插入数据库?

我正在使用 PHP。

【问题讨论】:

  • 嗯,你使用PHP对吗?
  • 您是否真的想要一个 csv(一种具有自己的转义特性的文件类型),它可能无法直接在查询中工作,但可以用于通过其他机制上传?或者您是否想要一种方法来组合一组项目以用于直接查询?无论哪种方式,请注意没有提及安全性的答案,因为没有它,这很容易被黑客入侵以进行 sql 注入攻击。
  • @evan,我所说的 cvs 是指逗号分隔的值,如发布的那样。

标签: php arrays forms csv


【解决方案1】:

使用 PHP,我必须使用 name="fruits[]"(注意括号)来获取要发布的多个值。

从那里,您会得到一个$_POST['fruits'] 的数组(数字索引,值对应于所选内容),因此implode(',', $_POST['fruits']) 会将值作为逗号分隔的字符串提供给您。

但是,如果您担心真正的 CSV 格式,则需要转义分隔符并将值括起来(例如,值中可能包含逗号)。如果您确信没有任何值会破坏输出,并且explode(',', $string) 会让您恢复数组,那么implode() 很好。

也许你也感兴趣:

相关:

【讨论】:

  • 哦,顺便说一下,像往常一样,始终清理您的输入并将其正确转义以进行 sql 查询,即使使用 &lt;select&gt; 输入,您已经硬编码了这些值并且通常相信它们的完整性.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
相关资源
最近更新 更多