[英]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.