我们如何在同一个查询中插入多个值

时间:2013-12-02 07:42:56

标签: php mysql

我的桌子上有很多记录 我想知道如何使用循环在单个查询中插入所有记录。 e.g

DATABASE TABLE

invoice_id_ __ Product_1 ___ _Price_1_ _ _Product_2_ ___ Price_2_ _ __ _Product_3_ _ __ Price_3

类似地,有10个产品我想根据相同的发票ID(主键)插入它们。 我怎么能这样做请帮助。感谢

4 个答案:

答案 0 :(得分:2)

来自mySQL手册

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

以下是文档链接http://dev.mysql.com/doc/refman/5.6/en/insert.html

答案 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)......

但是如果您有多个位置要插入/更新/删除,请检查数据库设计。您可能需要将其标准化。