[英]Insert multiple rows into table from a variable in PHP for Mysql & Oracle tables
我从一些表中获取数据并将其存储在如下变量中:
$result = mysql_query("SELECT * FROM sample where column=mysql_insert_id()");
while($row=mysql_fetch_array($result))
{
$str = "'". $row["name"] . "',". "'" . $row[quantity] . "'," . "'" . $row["id"];
}
所以在我的变量$str
,假设我有以下值 - :
shirt,10,1,pant,50,2....i.e. it will store values in a comma separated format.
现在我想在另一个表中插入这些值,如test-:
$qry = "INSERT INTO test(name,quantity,id)values(".$str.");
现在我想将测试表中的值存储为两行,如:
shirt 10 1
pant 50 2
那么如何为Mysql和Oracle表做同样的事情呢?
Plz的帮助
请参阅我的以下查询 - :
$query2 = "SELECT sfoi.name, sfoi.sku, sfoi.qty_ordered, sfoi.price, sfoi.row_total, sfo.base_subtotal, sfo.base_shipping_amount, sfo.base_grand_total,
(select mso.order_primary from mysql_sales_order mso where mso.increment_id =sfo.increment_id)
FROM sales_flat_order sfo
JOIN sales_flat_order_item sfoi
ON sfoi.order_id = sfo.entity_id
WHERE sfo.increment_id = ". $order_id ;
$result_query2 = mysql_query($query2);
因此,对于一个订单ID,即一个订单可能包含多于1个产品,即许多名称,sku,订购数量等等。所以在mysql_fetch_array()时,我希望所有产品数据都在一个变量中...我的代码用于获取就像这样 - :
while($row = mysql_fetch_array($result_query2))
{
$string = "'". $row["name"] . "',". "'" . $row["sku"] . "'," . "'" . $row["qty_ordered"] . "',". "'" . $row["price"] . "'," . "'" . $row["row_total"] . "'," . "'" . $row["base_subtotal"]. "'," . "'" . $row["base_shipping_amount"] . "'," . "'" . $row["base_grand_total"] ."'," . $row["prod_foreign"];
$query3 = "INSERT into mysql_sales_product(name, sku, qty_ordered, price, row_total, base_subtotal,base_shipping_amount,base_grand_total,prod_foreign) VALUES(".$string.")";
}
$result_query_product_outbound = mysql_query($query3);
在这里,我想将mysql_fetch_array的结果存储在变量中,如果有多行,我仍然可以使用变量$ string传递这些行。 例如-:
name sku qty_ordered price row_total subtotal shipping_amnt grand_total prod_foreign
nokia nk 2 500 1000 1000 300 1300 11
sansung sam 3 400 1200 1200 500 1700 30
sony sny 4 200 800 800 200 1000 45
比在PHP循环中更容易,您可以直接在MySQL中执行此操作。 我不确定这是否适合您,因为您没有告诉我们Oracle的问题...
无论如何,这是我在你的情况下会做的:
INSERT INTO test(name,quantity,id)
SELECT name, quantity, id FROM sample where id=<your id here>
或者,如果您有多个ID,
INSERT INTO test(name,quantity,id)
SELECT name, quantity, id FROM sample where id in (<your ids here as comma separated list>)
对于Oracle,如下所示:
INSERT ALL
INTO your_table(column1,column2,column3) VALUES('values1.1', 'values1.2', 'values1.3')
INTO your_table(column1,column2,column3) VALUES('values2.1', 'values2.2', 'values2.3')
SELECT * FROM dual;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.