【问题标题】:PDO insert a simple array into MySQL databasePDO 将一个简单的数组插入 MySQL 数据库
【发布时间】:2016-05-28 04:45:28
【问题描述】:

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

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() 语句有关,我只想要一个正确的方法和推理来帮助我学习。谢谢。

【问题讨论】:

  • :questions_name != :question_name
  • @JayBlanchard 感谢现场,我已经改变了,同样的错误仍然存​​在

标签: php mysql arrays forms pdo


【解决方案1】:

简单的解决方案:

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

【讨论】:

  • 这样一个简单的解决方案。真的不需要解释。谢谢!
  • @YourCommonSense 那是bindValue 兄弟。进行第二次更改并设置bindParam
  • 刚刚意识到我所做的编辑很愚蠢。不知道我在想什么,但似乎我完全心不在焉。我很抱歉。
猜你喜欢
  • 2017-07-03
  • 2017-02-10
  • 2014-04-17
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 2016-06-03
  • 2018-08-01
相关资源
最近更新 更多