我尝试使用PDO将一些调查结果添加到数据库中。因为调查有50个问题,我认为我会使用PHP foreach循环添加它们来添加每个问题的结果。
有两个不同的表格。一个是包含用户详细信息(名称,电子邮件等)的响应者表。另一张表是一个回复表,显示受访者对调查的答案,并通过他们的ID链接。
每次我跑这个都会收到错误:
未捕获的PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064
第一个语句执行运行正常,我可以看到添加到数据库的用户详细信息,但我无法让第二个语句成功运行。
//Add respondent to database
$sth = $dbh->prepare("
INSERT INTO `respondents` (`id`,`firstname`,`lastname`,`email`) VALUES (?,?,?,?);
INSERT INTO `responses` (`rid`) VALUES (?)
");
$sth->execute([$id, $first, $last, $email, $id]);
//Add survey results
$sth = $dbh->prepare("
INSERT INTO `responses` (?) VALUES (?)
WHERE `rid` = ?
");
foreach ($responses as $key => $response) {
$sth->execute([$key, $response, $id]);
}
我对PDO和MySQL有点新意,所以我确定这不是最好的方法,所以任何帮助都会受到赞赏。感谢。
完整错误:
致命错误:未捕获PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以获得在' 1')VALUES(' 1')附近使用的正确语法;
rid
=' df3f745ad872d72aa6466e571af743eb''