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

问题描述 投票:-1回答:4
<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 mysql mysqli
4个回答
-1
投票

尝试像这样进行查询

<?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并使其更安全。


0
投票

您可以在使用表上创建触发器来设置信息表的最后插入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

0
投票

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


-1
投票

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

INSERT INTO uses (uses) VALUES ('10'),('20'),('26');
© www.soinside.com 2019 - 2024. All rights reserved.