0

只是为了提高效率,我想在这里听听 PHP 专家的一些建议。(实际上,这个问题让所有经常搞乱数据库连接的开发人员都知道)

假设你有一个personId并且这个 id 有多个numbers您有一个包含pIDnums列的表

从 php 方面,您可以在数组中检索这些数字。现在我的问题来了。你做类似的事情;

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

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

4

2 回答 2

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));
于 2012-05-19T00:09:33.553 回答
1

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

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

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

具有多个值。

于 2012-05-19T00:09:03.677 回答