Mysql批量插入不插入所有数据

时间:2016-11-05 19:01:46

标签: php jquery mysql insert

我必须在我使用的循环中通过Ajax将excel中的许多数据插入到表(大约4000行)中:

$query = "INSERT IGNORE INTO ".$params["table"]." (".$colonnes_string.") VALUES (".$row.")";

这个查询工作正常,但是它只插入1000行4000,可能有些插入有错误,为什么我设置了IGNORE语句,但它仍然没有插入1000行以上。

如何跳过插入错误并继续查询?

谢谢。

2 个答案:

答案 0 :(得分:2)

请使用 INSERT ... ON DUPLICATE KEY UPDATE 语法而不是 IGNORE 以下是类似问题https://softwareengineering.stackexchange.com/questions/238472/how-to-insert-update-a-large-amount-of-data-into-mysql-using-php

的链接

答案 1 :(得分:1)

您可以使用该语法插入多行:

$query = "
    INSERT INTO some_table 
        (column_name) 
    VALUES 
        ('value'),
        ('another value'),
        ('and again'),
        ...
        ('a last one');
";

因此,您必须同时使用所有VALUESINSERT构建查询。

即。 :

// Set the first part of the query with table name and column(s)
$query = "INSERT INTO some_table (some_column) VALUES ";

foreach ($rows as $row) {
    // concatenate the query with values in a loop
    $query .= "(".$row."),";
}

// replace last comma with semi-column to get the right syntax
$query = substring($query, 0, -1).";";

希望它有所帮助。