在单个查询中存储数据库中的多个输入
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');
以上是关于在单个查询中存储数据库中的多个输入的主要内容,如果未能解决你的问题,请参考以下文章