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