使用insert into 插入,代碼如下:
肥鄉(xiāng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
$params = array(‘value'='50′);
set_time_limit(0);
echo date(“H:i:s”);
for($i=0;$i2000000;$i++){
$connect_mysql-insert($p
最后顯示為:23:25:05 01:32:05 也就是花了2個小時多如果想要了解更多的話,具體可以去后盾人學習下,,這樣更加有幫助
首先10000txt文件要起一個有規(guī)律的名稱。例如按數(shù)字大小。這樣便于循環(huán)。
如果不是這樣,也可以做,但是要遍歷目錄,判斷文件。
$file_name_arr = scandir(文件目錄);//遍歷文件
unset($file_name_arr[0]);
unset($file_name_arr[1]);
$file_name_arr = array_values($file_name_arr);
foreach($file_name_arr as $file_name){
if(is_file(路徑/$file_name){
$str_arr = get_txt(文件地址);
//把數(shù)據(jù)插入數(shù)據(jù)庫,記得在把內(nèi)容向表里插的時候要加addslashes(),$str_arr[0]就是標題,$str_arr[1]就是內(nèi)容
}
}
function get_txt($file){
$str = file_get_contents($file);
$str_arr = preg_split('|\n|',$str);
return $str_arr;
}
建議把10000個文件分成多份執(zhí)行,避免數(shù)據(jù)庫跑死
項目需要批量導入excel文件,如果里面有重復的數(shù)據(jù)要怎么處理呢?每插入一次數(shù)據(jù)都要到數(shù)據(jù)庫查詢么?
回復內(nèi)容:
項目需要批量導入excel文件,如果里面有重復的數(shù)據(jù)要怎么處理呢?每插入一次數(shù)據(jù)都要到數(shù)據(jù)庫查詢么?
1、如果里面有重復的數(shù)據(jù)要怎么處理呢?
1
code可以先判斷數(shù)據(jù)庫是否有該數(shù)據(jù)。/code
2、每插入一次數(shù)據(jù)都要到數(shù)據(jù)庫查詢么
1
code是的。/code
先去重得到?jīng)]有重復的數(shù)據(jù),再批量插入數(shù)據(jù)庫。也可以嘗試MYSQL中的insert ignore into或 replace into
如果查詢比較慢,對不能重復的字段加唯一鍵,然后用INSERT IGNORE INTO
php批量導入數(shù)據(jù)出錯
我現(xiàn)在要做的是,把一個產(chǎn)品數(shù)據(jù)從EXCEL中導入到PHP的MYSQL中,導入的過程中,總是會提示“Allowed memory size of 167772160 bytes exhausted (tried to allocate 689919 bytes) in D:\wamp\www\Company\product\admin\uploadOrder.php on line 167”這個錯誤,然后我分成第100條導入時,就不會提示這個錯誤,這個是不是內(nèi)存溢出,有沒有好的解決方法呢?
------解決方案--------------------
php.ini中講memory_limit選項設置大一點,然后重啟apache或nginx就行了
------解決方案--------------------
文件太大了,這樣的話可以用source命令直接導入!
------解決方案--------------------