PHP:将列表插入数据库的有效方法

时间:2012-05-19 00:01:12

标签: php mysql database performance

仅仅是为了提高效率,我想听听来自PHP expers的一些建议。 (实际上,这个问题会导致所有开发人员定期乱用数据库连接)

假设您有一个 personId ,并且此ID有多个数字。您的表格中包含 pID nums

从php端,您可以在数组中检索这些数字。现在我的问题就到了。你做了类似的事情吗?

for($i=0;$i<count($arr);$i++)
{
   //Call the insert query over and over again
}

或者显然有更好的解决方案?

2 个答案:

答案 0 :(得分:2)

基本上你想要进行批量插入 - 执行一个复合语句比单个插入更快,所以请尝试:

$data is your array
$sql = array(); 
foreach( $data as $row ) {
    $sql[] = '("'.mysql_real_escape_string($row['field1']).'")';
}
mysql_query('INSERT INTO table (field) VALUES '.implode(',', $sql));

答案 1 :(得分:1)

如果您的数据集非常大,您可以查看将值转储到文件中,然后执行“LOAD DATA INFILE”(仅当MySQL与您的脚本在同一主机上运行时才会起作用)。

或者,您可以使用一个插入查询:

INSERT INTO table(pid,nums) VALUES (1,2), (1,3), (1,4), ... -- etc

有多个值。