我试图将每个“response”和“question_id”插入到其自-6ren">
gpt4 book ai didi

php - 使用 PHP PDO 为每个 $_POST 插入行

转载 作者:行者123 更新时间:2023-11-29 07:56:28 26 4
gpt4 key购买 nike

我有一个由 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>

我试图将每个“response”和“question_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();
}

我读到像这样多次执行查询效率也很低。

最好的方法是什么?

最佳答案

很简单,您只需要稍微改进一下循环,并且只需要一个查询...

$query = $db->prepare("INSERT INTO responses SET text=:text, question_id=:question_id");

foreach ($_POST as $key => $value) {
if($key == "text") {
$query->bindValue(':text', $value, PDO::PARAM_STR);
} else if($key == "question_id") {
$query->bindValue(':question_id', $value, PDO::PARAM_INT);
}
}

$query->execute();

关于php - 使用 PHP PDO 为每个 $_POST 插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25008755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com