INSERT
在MysqL中,用多行汇编一条语句要比INSERT
每行一条语句快得多。
也就是说,听起来您可能会遇到PHP中的字符串处理问题,这实际上是算法问题,而不是语言问题。基本上,当使用大字符串时,您希望最大程度地减少不必要的复制。首先,这意味着您要避免串联。构建大型字符串(例如一次插入数百行)的最快,最节省内存的方法是利用implode()
函数和数组分配。
$sql = array();
foreach( $data as $row ) {
$sql[] = '("'.MysqL_real_escape_string($row['text']).'", '.$row['category_id'].')';
}
MysqL_query('INSERT INTO table (text, category) VALUES '.implode(',', $sql));
这种方法的优点是,您无需复制和重新复制到目前为止已与每个串联组合的sql语句。相反,PHP 在语句中执行 一次implode()
。这是一个巨大的 胜利。
如果您有很多列要放在一起,并且一个或多个列很长,则还可以构建一个内部循环以执行相同的操作,并使用implode()
将values子句分配给外部数组。