我的桌子上有很多记录 我想知道如何使用循环在单个查询中插入所有记录。 e.g
DATABASE TABLE :
invoice_id_ __ Product_1 ___ _Price_1_ _ _Product_2_ ___ Price_2_ _ __ _Product_3_ _ __ Price_3
类似地,有10个产品我想根据相同的发票ID(主键)插入它们。 我怎么能这样做请帮助。感谢
答案 0 :(得分:2)
来自mySQL手册
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
答案 1 :(得分:1)
问题是数据库设计。它已损坏,因为它是not normalized。这使得编写插入,查询或建立DRI变得困难(实际上不可行)。
相反,表格应如下所示。请注意,InvoicedProducts表建立了Many-to-Many relationship。
Invoices
--
invoiceNumber
invoiceDate
Products
--
productName
productPrice -- current product price
InvoicedProducts
--
Invoice (FK) -- the Invoice and Product FKs create a compound PK
Product (FK)
invoicedProductPrice -- product purchased at price (in case the price changes)
然后你只需插入InvoicedProducts
之类的..
INSERT INTO InvoiceProducts (invoiceId, productId, invoidedProductPrice)
VALUES(.., .., ..)
..适当的次数(或每个发票/产品对一次)。使用单独的INSERT语句,但使用单个事务。
答案 2 :(得分:0)
试试这个
$con=mysqli_connect(hostname,username,password,databasename);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO table_name (a,b,c)
VALUES ('Peter', 'Griffin'),('absss','avdss','advas'),(7,8,9)");
答案 3 :(得分:0)
语法类似于下面
- INSERT INTO TABLE_NAME(COLUMN1,COLUMN2)VALUES(VALUE1,VALUE2),(VALUE3,VALUE4)......
但是如果您有多个位置要插入/更新/删除,请检查数据库设计。您可能需要将其标准化。