仅仅是为了提高效率,我想听听来自PHP expers的一些建议。 (实际上,这个问题会导致所有开发人员定期乱用数据库连接)
假设您有一个 personId ,并且此ID有多个数字。您的表格中包含 pID , nums
列从php端,您可以在数组中检索这些数字。现在我的问题就到了。你做了类似的事情吗?
for($i=0;$i<count($arr);$i++)
{
//Call the insert query over and over again
}
或者显然有更好的解决方案?
答案 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
有多个值。