php - PDO 向 MySQL 数据库中插入一个简单的数组

标签 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();

这给了我

Array to string conversion" error.

我测试了print_r语句,结果符合预期:

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

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

我知道这与 BindValues/BindParam/execute() 语句有关,我只是想要一个有效的正确方法和推理来帮助我学习。谢谢。

最佳答案

简单的解决方案:

$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();
}

关于php - PDO 向 MySQL 数据库中插入一个简单的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35440455/

相关文章:

PHP MySQLi 仅返回 JSON 中的一行

mysql - sql查询提取唯一记录

c++ - 无法弄清楚如何将结构数组传递给函数

Javascript DateTime 与 MySQL 日期和时区

javascript - 无法将结果推送到 JavaScript 字典

arrays - JQ 对嵌套对象中的字段进行过滤

php - 如何使用循环连接 MySQL 日期类型和 PHP 日期类型

php - 在 Yii 中使用多个模型创建下拉列表

php - 将 Laravels Eloquent 与数据库 View 结合使用

javascript - 按接近度对坐标(纬度和经度)结果进行排序