问题解决了。 根据Zerquix18的回答,我做了一些小改动,它就像一个魅力。
$count = count($book_array);
$query = 'INSERT INTO book_exchange (class, book_title, isbn) VALUES ';
for ($i=0; $i<$count; $i++){
$query .= '( \''.$book_array[$i][0].'\',\''.$book_array[$i][1].'\',\''.$book_array[$i][2].'\' )';
if ($i != ($count-1)) {
$query .= ',';
}
}
我有一个书桌,让用户在下面的字段中输入信息。我想将值插入我的book表中。我使用“for”循环来获取每一行的值并将其添加到数组中。我将再次使用“for”将这些数组添加到数据库中。
例如,如果在字段中使用填充值。我有3个数组:
book_array[0]
,book_array[1]
,book_array[2]
。每个都包含3个元素。我要编写一个for循环来将3个数组插入表中。
另一方面,我认为我可以将所有具有相同类型的元素添加到数组中。例如,我有一个类的数组,一个用于书名的数组和一个用于isbn的数组。然后我将这些数组添加到数据库的每一列中。我认为这种方式更快。但我不确定它是否有效。在这种情况下,请建议我将数据插入数据库的最佳方法。还请举个例子。感谢。
for ($i=0; $i<$n; $i++) {
$book_array[$i] = array($_POST['field_class_'.$i.''],$_POST['field_book_title_'.$i.''],$_POST['field_isbn_'.$i.'']);
}
答案 0 :(得分:2)
在此示例中,我尝试进行查询以插入变量$book_array
<?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.
我没有测试它。
答案 1 :(得分:0)
您可以使用此类型的语法来解决此问题:
INSERT INTO <table_name> ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value3, Value4 )
答案 2 :(得分:0)
您可以像使用
一样使用查询INSERT INTO TABLE_NAME (1, 2) VALUES (v1, v2),(v1, v2),(v1, v2),..............
1,2 are representing column index.
在上面的查询中,我提到了列索引值(int)而不是column-label(String)。使用索引的好处是,如果您更改了任何列名,则无需更改查询。否则,如果您使用列标签,则还必须更改查询。