【发布时间】:2013-01-14 23:57:39
【问题描述】:
我有一个 html 页面,我从复选框中收集一组值以插入数据库。 html 页面发布到 PHP 页面,该页面收集数据然后存储在数据库中。
对于每个值,我想包括一些其他字段,这些字段对于所有值(例如输入的时间)都是相同的。我可以使用 implode 轻松地将捕获的数组转换为逗号分隔的列表。我使用这样一个逗号分隔的 id 列表来更新和删除记录。但是,当我想插入它们时,MYSQL 似乎不允许您使用逗号分隔的列表。我的问题是,插入记录的最简单方法是什么,为 c 逗号分隔列表中的每个值插入一个记录,而不使用循环。
html页面
<input type="checkbox" name="var[]" value=1>
<input type="checkbox" name="var{}" value=2>
PHP 页面
$vars = $_POST['var'];
这给了我一个数组,我可以使用 implode 将它转换为逗号分隔的列表。
要删除,我可以去
$sql = "DELETE * from table WHERE id in '$vars'";
要更新我可以去
$sql = "UPDATE table, WHERE id in '$vars'";
但似乎没有插入的等价物。
以下方法可行:
$sql = "INSERT into table (var, timeentered) values (1,now()) (2,now())";
但是,这不是我拥有数据的方式。我想做的是像
$sql = "INSERT into table (var,timeentered) values($vars), now()" 但是这当然行不通。
我是否必须将用于更新和删除的漂亮逗号分隔列表转换为看起来像 (1,now) (2, now()) 的东西以进行插入,还是有替代方法?
感谢您的任何建议。
【问题讨论】:
-
@Lucas 这绝对不正确。