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

时间:2018-03-03 05:57:52

标签: php mysql mysqli

<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进行操作:

4 个答案:

答案 0 :(得分:0)

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

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 uses (uses) VALUES ('10'),('20'),('26');

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

尝试像这样进行查询

def hb(df):
    counter = 0
    df[df.col1 == df.col2] = df[df.col1 == df.col2].replace(['a', 'b', 'c', 'd'], [2,1,1,0])
    df[df.col1 == df.col3] = df[df.col1 == df.col3].replace(['a', 'b', 'c', 'd'], [0,1,1,2])
    index_drop =df[((df.col1 != df.col3) & (df.col1 != df.col2))].index
    counter = counter + len(index_drop)
    df = df.drop(index_drop)
    return df

经过测试 Here 比执行此查询

但请记住,你的代码并不安全。可以做一个sql注入,所以请阅读 this note. 并使其更安全。

答案 3 :(得分:-1)

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

INSERT INTO uses( id, uses ) VALUES ((SELECT MAX(inf_num) from info), 
'useOne', (SELECT MAX(inf_num) from info), 'useTwo', (SELECT MAX(inf_num) from 
info), 'useThree')