我见过一些与我的类似的问题,但没有一个问题对表列和要插入的值使用数组循环。我对 PDO 相当陌生,所以我对如何完成这项工作有点迷失。
我正在创建一个表单,学生可以在其中输入多项选择题的答案,并将他们的答案存储在数据库中。有 68 个问题。现在我正在对每一列和值进行硬编码,如下所示:
$stmt = $DBH->prepare("INSERT INTO my_table (student, q1, q2, etc...)
VALUES (?, ?, ?, etc...) ");
$stmt->execute(array($student_name, $answer[1], $answer[2], $answer[3],
etc... through $answer[68]));
这工作得很好,但必须有一种更简单的方法来做到这一点,而无需键入每个实例。我希望能够循环遍历表列(上面的 q1 等)的数字以及答案变量数组。我只是不知道如何解决这个问题。
即使自动拥有正确数量的占位符问号 - 这可能吗?
最佳答案
虽然 @IMSoP 在更大的方面是正确的,但在我看来,您在这里所需要的只是一个包含 $student_name 的数组,后跟所有 $answer 数组。
$stmt->execute(array_merge(array($student_name), $answer)));
就是这样做的。如果您想要部分但不是全部 $answer,可以使用 array_slice。
关于php - 使用数组循环进行 PDO 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23047649/