在单个查询中存储数据库中的多个输入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在单个查询中存储数据库中的多个输入相关的知识,希望对你有一定的参考价值。

<form method="post" action="formProcessing.php">
  <input type="text" name="uses[]">
  <input type="text" name="uses[]">
  <input type="text" name="uses[]">
</form>

我有两个数据库表,一个叫info其他用途。 info表包含列名inf_num,有没有办法可以获取最后一行inf_num并在一个查询中使用上面的输入。例如,如果我是手动执行,我会自己检查最后一行,所以如果它是10我将执行以下操作:

INSERT INTO uses (id, uses) VALUES (10, 'useZero'), (10, 'useOne'), (10, 'useTwo');

我将如何使用上面的表格动态地使用php:

答案

尝试像这样进行查询

<?php

//Your input is array of your input.
$yourInput = array(10,20,26);

$query = "INSERT INTO uses (id, uses) VALUES ";

foreach($yourInput as $value ){
 $query .= "(10, '$value')".",";
}

echo $query;
//Output
INSERT INTO uses (id, uses) VALUES (10, '10'),(10, '20'),(10, '26')

测试Here比执行此查询

但请记住,您的代码并不安全。有可能做一个SQL注入,所以请阅读qazxsw poi并使其更安全。

另一答案

您可以在使用表上创建触发器来设置信息表的最后插入ID。

this note.

之后,创建触发器可以直接执行插入查询。

CREATE TRIGGER uses_before_insert_trigger BEFORE INSERT ON `uses` FOR EACH ROW
      BEGIN                            
           SET NEW.id = (select id from info order by id desc LIMIT 1);    
      END
另一答案

INSERT INTO user(id,uses)SELECT MAX(id),'userOne'FROM info UNION ALL SELECT MAX(id),'userTwo'FROM info;

另一答案

我们也可以通过查询来实现。

INSERT INTO uses (uses) VALUES ('10'),('20'),('26');

以上是关于在单个查询中存储数据库中的多个输入的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中查询单个列中的多个值

如何使用单个查询获取存储在不同变量中的多个表行的计数?

单个 Prisma 查询中的 LEFT JOINS 和聚合

在 Android 中使用具有多个布局的单个片段

是否有在单个活动中处理多个片段的 Android 设计模式?

Youtube Data API:在单个请求中按 ID 检索多个视频条目