PHP循環(huán)向MySQL數(shù)據(jù)庫插入數(shù)據(jù),怎么判斷是否每條都插入成功?
問題描述
如題。
while(! feof($file)){$data= fgets($file);//fgets()函數(shù)從文件指針中讀取一行$res = $this->Model->function($data);//插入數(shù)據(jù)的方法 } //比如這種的怎么判斷每一行都插入成功
問題解答
回答1:// 定義變量num$num = 0;while (! feof($file)) {
$data= fgets($file);//fgets()函數(shù)從文件指針中讀取一行$res = $this->Procesratio->promction($data);// 直接在這里判斷if (!$res) { $num += 1;}
}
// 這里判斷一下num的值if ($num == 0) {
// 全部成功
} else {
// $num即為失敗條數(shù)
}
回答2:開啟事務(wù)transaction,只要有一條出錯(cuò)就rollback,并且拋出異常
回答3:if($res == true){ echo 'success';}else{ echo 'fault';}回答4:
while(! feof($file)){ $data= fgets($file);//fgets()函數(shù)從文件指針中讀取一行 $res = $this->Model->function($data);//插入數(shù)據(jù)的方法 if($res){echo 'success!'; }else{echo 'error!。。。try again....';$this->Model->function($data) }}
插入成功后有會(huì)返回?cái)?shù)據(jù),根據(jù)返回做判斷就好了!!
回答5:這種大數(shù)據(jù)量的插入方式,如果線上業(yè)務(wù)沒那么繁忙的話,可以考慮分批插入,批量插入之后,返回結(jié)果就是受影響的行數(shù)。返回結(jié)果比較好查找而且效率會(huì)比這個(gè)高一些。或者是事務(wù),簡單暴力。
回答6:建議用事物吧,這樣至少可以保證數(shù)據(jù)的一致性吧。
