我有一个表单,允许用户添加多个文本框以添加不同的问题名称,然后将这些文本框传递给数组:
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()语句有关我想要一个正确的方法,可以帮助我学习。谢谢。
答案 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();
}