如何使用PHP PDO将未知数量的字段作为行插入

时间:2014-07-25 18:28:13

标签: php mysql pdo

我的表格看起来像这样:

<form>
<textarea name="text1"></textarea>
<textarea name="text2"></textarea>
<textarea name="text3"></textarea>
</form>

然而,textareas的数量是动态确定的,所以不会总是只有3。

我想将每个textarea的$ _POST插入到PDO的不同行中。如果他们都在同一行,我会用它:

$query = $db->prepare("INSERT INTO responses (text1, text2, text3) VALUES (:text1, :text2, :text3)");
$query->bindValue('text1', $_POST['text1'], PDO::PARAM_STR);
$query->bindValue('text2', $_POST['text2'], PDO::PARAM_STR);
$query->bindValue('text3', $_POST['text3'], PDO::PARAM_STR);
$query->execute();

虽然textareas数量不断变化的问题也未得到解决..我正在考虑使用count($ _ POST)并使用for循环进行迭代?

如何使用PDO将未知数量的字段插入自己的行?

1 个答案:

答案 0 :(得分:4)

更改HTML以将其作为数组发送:

<textarea name="text[]"></textarea>
<textarea name="text[]"></textarea>
<textarea name="text[]"></textarea>

然后你可以循环遍历数组$_POST['text']

你甚至可以这样做:

$params = array_fill(0, count($_POST['text']), '(?)');
$db->prepare("INSERT INTO responses (text) VALUES " . implode(", ", $params));
$query->execute($_POST['text']);