これを行う 1 つの方法は、オブジェクトを使用して挿入を行うことです。これにより、数量が大きくなりすぎた場合に挿入をバッチ処理でき、最終的な挿入は destruct メソッドで実行できます。
このようなもの:-
<?php
$InsertClassExample = new InsertClassDemo($db);
foreach($link as $i)
{
//some stuff
$InsertClassExample->InsertItem($s, $data, $data2);
}
unset($InsertClassExample);
class InsertClassDemo
{
var $db = '';
var $InsertArray = array();
function __CONSTRUCT($db)
{
$this->db = $db;
}
function __DESTRUCT()
{
if (count($this->InsertArray) > 0)
{
$this->PerformInsert();
}
}
public function InsertItem($s, $data, $data2)
{
$this->InsertArray[] = "('" . $s . "', '" . $data . "', '" . $data2 ."'), ";
if (count($this->InsertArray) > 250)
{
$this->PerformInsert();
}
}
private function PerformInsert()
{
$query = "INSERT INTO table VALUES ".implode(",", $this->InsertArray);
if($this->db->query($query) === false)
{
die("Insert Into table Failed - ".$this->db->error());
}
$this->InsertArray = array();
}
}
?>