PHP: 如何把数组导入MySQL数据库

考虑到性能当然不能按数组元素遍历来执行插入操作。

有两个方法可供选择,一种是把数据存入csv文件,然后执行load data infile

还有一种就是类似于sql server里面的bulk insert,使用insert语句插入批量数据,结合PHP的implode函数,

可以很简单的实现大批量数组数据的一次性插入。


$statement = "INSERT INTO table (title, type, customer) VALUES ";
foreach( $data as $row) {
   $statement .= ' ("' . implode($row, '","') . '")';
}

不过大批量数据的插入,需要注意mysql在内存上有限制:

http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_bulk_insert_buffer_size

bulk_insert_buffer_size变量的默认大小为8M, 是指单个线程占用的大小限制,设置为0,表示不做限制。


参考链接:

http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html



by iefreer

你可能感兴趣的:(PHP,mysql,array,insert,bulk)