PDO将一个简单的数组插入MySQL数据库

时间:2016-02-16 18:34:21

标签: php mysql arrays forms pdo

我有一个表单,允许用户添加多个文本框以添加不同的问题名称,然后将这些文本框传递给数组:

name="question_name[]

如何使用PDO和MySQL将此数组插入到我的问题表中?我试过了:

$sql = "INSERT INTO questions (`question_name`) VALUES (:question_name)";
$stmt = $db->prepare($sql);
$stmt->bindValue(':question_name', $question_name);
$stmt->execute();

这给了我

  

数组到字符串转换“错误。

我测试了print_r语句,结果与预期一致:

Array ( [0] => [Answer1] => [2] => [Answer2]) 

等...取决于使用的文本框数量。

我理解它与BindValues / BindParam / execute()语句有关我想要一个正确的方法,可以帮助我学习。谢谢。

1 个答案:

答案 0 :(得分:3)

简单的解决方案:

$sql = "INSERT INTO questions (`question_name`) VALUES (:question_name)";
// prepare a stamemnt only once
$stmt = $db->prepare($sql);
$stmt->bindParam(':question_name', $question_name);
// iterate over your POST[question_name] array
foreach ($_POST['question_name'] as $question_name) {
    $stmt->execute();
}