したがって、いくつかの問題があります。1) SQL から PHP にテーブルをコピーし、メモリ使用量に注意して、PHP コマンド Memory_usage() でスクリプトを実行します。SQL データのインポートにはコストがかかる可能性があることがわかります。これを見てください。もう1つのことは、配列に新しい値を設定する際にPHPがメモリを解放することです。後で役に立ちます。
2)値がソースで一意であるか、宛先テーブルで一意である必要があるかを理解できませんでした..したがって、すべてのソースがそのまま宛先にある必要があると想定します。また、pr = pr0 および quant=pr1 であると仮定します。
3) 名前が一致しません。これも問題になる可能性があります。それの世話をします..また。
4) SQL コネクタとして My_sql を使用します..そして $db が接続されています.. スクリプト:
<?PHP
$select_sql = "SELECT * FROM Table_source";
$data_source = array();
while($array_data= mysql_fetch_array($select_sql)) {
$data_source[] = $array_data;
$insert_data=array();
}
$bulk =2000;
foreach($data_source as $data){
if(isset($start_query) == false)
{
$start_query = 'REPLACE INTO DEST_TABLE ('ID_','pr0','pr1','pr2')';
}
$insert_data[]=implode(',',$data).',0)';// will set 0 to the
if(count($insert_data) >=$bulk){
$values = implode('),(',$insert_data);
$values = substr(1,2,$values);
$values = ' VALUES '.$values;
$insert_query = $start_query.' '.$values;
$mysqli->query($insert_query);
$insert_data = array();
} //CHECK THE SYNTAX IM NOT SURE OF ALL OF IT MOSTLY THE SQL PART>> SEE THAT THE QUERY IS OK
}
if(count($insert_data) >=$bulk) // IF THERE ARE ANY EXTRA PIECES..
{
$values = implode('),(',$insert_data);
$values = substr(1,2,$values);
$values = ' VALUES '.$values;
$insert_query = $start_query.' '.$values;
$mysqli->query($insert_query);
$insert_data = null;
}
?>
ITは頭から離れていますが、このアイデアを確認して、これが機能するかどうかを教えてください。バグの夜は、QUERY構造で忘れていた小さなものにあり、これを印刷してPHPmyADMINまたはDBクエリに貼り付けて、すべて良いことを確認してください。コンセプトは多くの問題を解決します..