【发布时间】:2021-02-03 20:00:27
【问题描述】:
我正在运行一个针对医学生的网站,我的数据库中的每个学生都有个人资料和积分,所以当他们参与一项活动时,我必须为所有参与者添加 X 点数,我这样做手动使用 ajax 表单,如何运行 MySQL 查询以在大型文本输入 (textarea) 中为每个学生提供 X 点数?所以我可以一次插入所有点,这样更容易更快,下面是一个例子:
21910431|1|Participant
22010431|3|Subleader
21810531|6|Headleader
(Student ID)|(points)|(role in activity)
所以当我用上面的数据填充 textarea 时,它必须将 3 条记录插入到 activity_log 表中。
如何一次将其全部插入数据库?像这样:
$query= "INSERT INTO `activity_log` (`Student ID`, `points`, `role`) VALUES (ALL THE VALUES IN THE EXAMPLE ABOVE)";
如果有人能帮忙,你能写下代码告诉我怎么做吗?非常感谢!
【问题讨论】:
-
语法为:
VALUES (data for row 1), (data for row 2), ...。使用循环将此表单添加到您的查询中。 -
在新行上爆炸,然后在管道上爆炸。迭代行数据的新行爆炸,然后通过管道获取列值。参数化查询。
-
由于您还应该使用准备好的语句,因此使用 PDO 是最简单的。您可以将
?占位符放入查询中,然后将所有值作为数组放入execute()调用中。 -
@Barmar 为什么是循环?
-
@ysth 或者将所有值放在一个数组中并使用
implode()。