【发布时间】:2014-09-20 10:30:58
【问题描述】:
我有一个由 while 循环生成的动态表单,如下所示:
<form>
<?php while ($questions = $query->fetch(PDO::FETCH_ASSOC)) { ?>
<textarea name="text"></textarea>
<input type="hidden" name="question_id" value="<?php echo $questions['question_id']; ?>">
<?php } ?>
</form>
我正在尝试将每个“响应”和“问题 ID”插入到自己的行中。我不确定是将 $_POST 变量作为 text[] 之类的数组发送还是执行 foreach 循环或两者兼而有之?
基本上我想做以下事情:
foreach($_POST) {
$query = $db->prepare("INSERT INTO responses SET text=:text, question_id=:question_id);
$query->bindValue(':text', $_POST['text'], PDO::PARAM_STR);
$query->bindValue(':question_id', $_POST['question_id'], PDO::PARAM_INT);
$query->execute();
}
我读过这样多次执行查询也是低效的。
最好的方法是什么?
【问题讨论】:
-
请记住始终过滤您的 $_POST,不要只是将 $_POST 字段插入数据库。
-
@Adherence 它在这里被绑定到占位符,所以一切正常。不过,
prepare行中缺少"。
标签: php mysql post pdo foreach