PDO 将一个简单的数组插入 MySQL 数据库
Posted
技术标签:
【中文标题】PDO 将一个简单的数组插入 MySQL 数据库【英文标题】:PDO insert a simple array into MySQL database 【发布时间】: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 感谢现场,我已经改变了,同样的错误仍然存在
【参考方案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
。
刚刚意识到我所做的编辑很愚蠢。不知道我在想什么,但似乎我完全心不在焉。我很抱歉。以上是关于PDO 将一个简单的数组插入 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章