簡體   English   中英

在單個查詢中將多個輸入存儲在數據庫中

[英]Storing multiple inputs in database in single query

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

我有兩個數據庫表,一個稱為信息其他用途。 信息表包含列名inf_num ,有沒有辦法我可以獲得最后一行 inf_num 並在一個查詢中插入上述輸入。 例如,如果我要手動執行此操作,我會自己檢查最后一行,因此如果是10,我將執行以下操作:

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


我將如何使用上述表單使用 php 動態執行此操作:

您可以在使用表上創建觸發器來設置信息表的最后插入的 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');

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

嘗試進行這樣的查詢

<?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')

在這里測試然后執行這個查詢

但請記住 Youe 代碼並不安全。 可以進行 sql 注入,因此請閱讀此說明。 並使其更安全。

我們也可以通過查詢來實現。

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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM