繁体   English   中英

在数据库中插入多个值的最佳方法-PHP MySQL

[英]Best way to insert multiple values in to DB - PHP MySQL

问题解决了。 根据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 .= ','; 
    }
}

题: 在此处输入图片说明

我有一个书桌,并让用户在下面的字段中输入信息。 我想将值插入到我的书表中。 我使用“ 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.'']);
}

在此示例中,我尝试进行查询以插入变量$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.

我没有测试。

您使用此类型的语法来解决此问题:

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. 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM