此代碼只適用於包含大約1K記錄的csv文件。但是,如果我嘗試插入文件,比如說100K,它就會生效。 我在網上搜索,發現了很多建議,比如調整php超時執行,增加爲php分配的內存(這有點幫助),但是我需要導入大量數據文件,例如100萬條記錄。將big csv,xls數據文件插入到帶有codeigniter的Mysql中
我正在使用codeigniter。 有沒有辦法加快這個過程: 有關此功能的描述: - 第一個「INSERT INTO」插入到客戶端(admin_id)和時間創建(create_time)的table =「client」中。
第二個「INSERT INTO」將attribute_id,client_id和value插入到table =「client_attribute_value」中。
function Add_multiple_users($values)
{
$err = '';
foreach($values as $rows)
{
$clientQuery = 'INSERT INTO
client
(
admin_id,
create_time
)
VALUES
(
"'.$this -> session -> userdata('user_id').'",
"'.date('Y-m-d H:i:s').'"
)';
$clientResult = @$this -> db -> query($clientQuery);
if($clientResult)
{
$client_id = $this -> db -> insert_id();
foreach($rows as $row)
{
$attrQuery = 'INSERT INTO
client_attribute_value
(
attribute_id,
client_id,
value
)
VALUES
(
"'.$row['attribute_id'].'",
"'.$client_id.'",
"'.addslashes(trim($row['value'])).'"
)';
$attrResult = @$this -> db -> query($attrQuery);
if(!$attrResult)
{
$err .= '<p class="box error">Could not add attribute for<br>
Attribute ID: '.$row['attribute_id'].'<br>
Client ID: '.$client_id.'<br>
Attribute Value: '.trim($row['value']).'</p>';
}
}
}
}
return $err;
}
是否可以在此函數中加入「LOAD DATA INFILE」? – chap