插入一组值

时间:2009-08-27 17:07:22

标签: php mysql

我有一个数值可变的数组。

除了在其中包含查询的循环之外,是否有更高效或更好的方法将它们插入到我的数据库中?

3 个答案:

答案 0 :(得分:3)

this site,有一个很好的MySQL插件查询示例。 有效的SQL到

INSERT INTO [table]
VALUES 
(row1),
(row2),
...

根据要求:php片段:

$query="INSERT INTO mytable\nVALUES\n (".$values[0].")";
array_shift( $values );
foreach( $values as $value ) {
    $query .= ",(".$value.")";
}

答案 1 :(得分:2)

根据我的经验,多行插入比同等数量的单行插入处理 MUCH 更快,如果你一次插入大量数据,这是一个很好的方法。我已经看过使用这种方法将输入数千行数据的过程从5-10分钟缩短到几秒钟。

就代码部分而言,我一直是使用implode()加入字段数组的粉丝。价值观。没理由你不能对数据行做同样的事情,你只需要能够识别哪些字段需要引用,转义等等。

为了论证,假设$ rows是一个格式正确的SQL值数组......

$sql = "INSERT INTO `table` VALUES (" . implode("), (", $rows) . ")";

如果您愿意,您可以应用类似的东西来组合各个字段。

答案 2 :(得分:1)

如果您使用的数据库允许多个值插入,那么您可以创建一个多插入语句并将其发送到数据库 - 一个连接一个命令以执行多个插入。

如果你不能做多次插入 - (因为MSSQL不允许) - 那么我认为你被卡住了。