首頁  >  問答  >  主體

PHP循環向MySQL資料庫插入數據,怎麼判斷是否每條都插入成功?

如題。

            while(! feof($file)){
                $data= fgets($file);//fgets()函数从文件指针中读取一行
                $res = $this->Model->function($data);//插入数据的方法
            }
            //比如这种的怎么判断每一行都插入成功
阿神阿神2668 天前865

全部回覆(6)我來回復

  • 学习ing

    学习ing2017-06-30 09:55:58

    // 定義變數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即为失败条数

    }

    回覆
    0
  • 怪我咯

    怪我咯2017-06-30 09:55:58

    開啟事務transaction,只要有一條出錯就rollback,並且拋出異常

    回覆
    0
  • 巴扎黑

    巴扎黑2017-06-30 09:55:58

    雷雷

    回覆
    0
  • 巴扎黑

    巴扎黑2017-06-30 09:55:58

    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)
        }
    }

    插入成功後有會回傳數據,根據返回做判斷就好了! !

    回覆
    0
  • 高洛峰

    高洛峰2017-06-30 09:55:58

    這種大數據量的插入方式,如果線上業務沒那麼繁忙的話,可以考慮分批插入,批量插入之後,返回結果就是受影響的行數。回傳結果比較好查找而且效率會比這個高一些。或者是事務,簡單暴力。

    回覆
    0
  • 黄舟

    黄舟2017-06-30 09:55:58

    建議用事物吧,這樣至少可以確保資料的一致性吧。

    回覆
    0
  • 取消回覆