在DB-PHPMYSQL中插入多个值的最佳方法

在DB-PHPMYSQL中插入多个值的最佳方法,php,mysql,arrays,Php,Mysql,Arrays,问题已解决。 根据Zerquix18的回答,我做了一些小改动,效果很好 在本例中,我尝试进行一次查询,以插入变量$book\u数组的所有值 <?php $q = 'INSERT INTO table (col1,col2,col3) VALUES '; $count = count($book_array); for($i = 0; $i < $count; $i++) { $q .= "( {$book_array[$i][0]}, {$book_array[1]}, {$

问题已解决。 根据Zerquix18的回答,我做了一些小改动,效果很好


在本例中,我尝试进行一次查询,以插入变量
$book\u数组的所有值

<?php
$q = 'INSERT INTO table (col1,col2,col3) VALUES ';
$count = count($book_array);
for($i = 0; $i < $count; $i++) {
    $q .= "( {$book_array[$i][0]}, {$book_array[1]}, {$book_array[2]} )";
    // add a comma if it's not the last
    if( $i !== ($count-1) )
        $q .= ',';
}
// now $q is your query.

您使用这种语法来解决此问题:

INSERT INTO <table_name> ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value3, Value4 )
插入(第1列,第2列)值(值1,值2),(值3,值4)

您可以像这样使用查询

INSERT INTO TABLE_NAME (1, 2) VALUES (v1, v2),(v1, v2),(v1, v2),..............
1,2 are representing column index. 

在上面的查询中,我提到了列索引值(int),而不是列标签(String)。使用索引的好处是,如果您更改了任何列名,则不需要更改查询。否则,如果您使用的是列标签,则必须同时更改查询。

您可以在一个查询中插入任意多个工作。
插入tbl_名称(a、b、c)值(1,2,3)、(4,5,6)、(7,8,9)注意,现在您正在创建SQL注入,除非您对$book\u数组中的变量进行了转义。这告诉你如何解决这个问题。谢谢你,你的代码只需要几个小改动。我编辑了你的代码,并把它放在我的问题的顶部。非常感谢。
INSERT INTO <table_name> ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value3, Value4 )
INSERT INTO TABLE_NAME (1, 2) VALUES (v1, v2),(v1, v2),(v1, v2),..............
1,2 are representing column index.