當前位置: 首頁>>代碼示例>>PHP>>正文


PHP DataModel::multipleExecute方法代碼示例

本文整理匯總了PHP中DataModel::multipleExecute方法的典型用法代碼示例。如果您正苦於以下問題:PHP DataModel::multipleExecute方法的具體用法?PHP DataModel::multipleExecute怎麽用?PHP DataModel::multipleExecute使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在DataModel的用法示例。


在下文中一共展示了DataModel::multipleExecute方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: upload


//.........這裏部分代碼省略.........
         $model->tableName = $tableName;
         if (!$model->tableExist()) {
             $model->createTable();
         }
         $model = new DataModel();
         foreach ($allAttrArray as $attr) {
             $model->{$attr} = 0;
         }
         $user = new UserModel();
         $totalEmptyErrorArr = array();
         $totalInsertErrorArr = array();
         //檢查插入失敗數據的二維數組
         $emptyErrorArr = array();
         //檢查不完整的數據的二維數組
         $sqlParams = array();
         $affectedRows = 0;
         foreach ($sheetNumArr as $i) {
             $currentSheet = $PHPExcel->getSheet($i);
             //獲得工作表,從0開始
             $highestRow = $currentSheet->getHighestRow();
             // 取得總行數
             $highestColumn = $currentSheet->getHighestColumn();
             //取得總列數 比如 ‘AJ'列這樣子
             //                echo $currentSheet->getTitle() . ' ' . $highestRow . '<br/>'; // 得到當前工作表的名字
             //讀取一個工作表的數據 每次讀取一行,再在行中循環每列的數值
             for ($row = $configArr['beginRow']; $row <= $highestRow; $row++) {
                 $listRow = array();
                 for ($column = self::BEGIN_COL; $column <= $arr[$highestColumn]; $column++) {
                     $val = $currentSheet->getCellByColumnAndRow($column, $row)->getValue();
                     $listRow[] = $val;
                     $listRow['row'] = $row;
                 }
                 //                    print_r($listRow);
                 //檢查數據的完整性
                 if (!self::checkDataComplete($configArr['schoolType'], $listRow, $attributesFlip)) {
                     $empty = array();
                     $empty['sheetName'] = $currentSheet->getTitle();
                     $empty['row'] = $row;
                     $emptyErrorArr[] = $empty;
                     unset($empty);
                 }
                 $model->tableName = $tableName;
                 $listRow[$attributesFlip['sex']] = $sexArr[trim($listRow[$attributesFlip['sex']])];
                 $listRow[$attributesFlip['BMIGrade']] = $BMIArr[trim($listRow[$attributesFlip['BMIGrade']])];
                 $listRow[$attributesFlip['FVCGrade']] = $otherArr[trim($listRow[$attributesFlip['FVCGrade']])];
                 $listRow[$attributesFlip['_50mGrade']] = $otherArr[trim($listRow[$attributesFlip['_50mGrade']])];
                 $listRow[$attributesFlip['SARGrade']] = $otherArr[trim($listRow[$attributesFlip['SARGrade']])];
                 $listRow[$attributesFlip['SLJGrade']] = $otherArr[trim($listRow[$attributesFlip['SLJGrade']])];
                 $listRow[$attributesFlip['ChinUpGrade']] = $otherArr[trim($listRow[$attributesFlip['ChinUpGrade']])];
                 $listRow[$attributesFlip['SitUpsGrade']] = $otherArr[trim($listRow[$attributesFlip['SitUpsGrade']])];
                 $listRow[$attributesFlip['_1000mGrade']] = $otherArr[trim($listRow[$attributesFlip['_1000mGrade']])];
                 $listRow[$attributesFlip['_800mGrade']] = $otherArr[trim($listRow[$attributesFlip['_800mGrade']])];
                 $listRow[$attributesFlip['_400mGrade']] = $otherArr[trim($listRow[$attributesFlip['_400mGrade']])];
                 $listRow[$attributesFlip['ropeSkippingGrade']] = $otherArr[trim($listRow[$attributesFlip['ropeSkippingGrade']])];
                 $listRow[$attributesFlip['SumUpGrade']] = $otherArr[trim($listRow[$attributesFlip['SumUpGrade']])];
                 $user->stuId = trim($listRow[$attributesFlip['stuId']]);
                 $user->password = sha1(substr(trim($listRow[$attributesFlip['stuId']]), -6));
                 $sqlParams[] = array('userFlag' => true, 'sql' => $user->create(true), 'sheetName' => $currentSheet->getTitle(), 'row' => $listRow['row']);
                 foreach ($attributes as $key => $attr) {
                     $listRow[$key] = str_replace(' ', '', trim($listRow[$key]));
                     $model->{$attr} = $listRow[$key];
                     if (empty($model->{$attr})) {
                         $model->{$attr} = 0;
                     }
                 }
                 //                    print_r($model);
                 $model->stuName = mb_substr($model->stuName, mb_strlen($model->stuName) - 2);
                 $model->stuName = "*" . $model->stuName;
                 //將 姓氏 轉化成*
                 $sqlParams[] = array('userFlag' => false, 'sql' => $model->create(true), 'sheetName' => $currentSheet->getTitle(), 'row' => $listRow['row']);
                 unset($listRow);
                 //每個頁麵每1000行提交一次
                 if ($row % 1000 == 0 || $row == $highestRow) {
                     $model->multipleExecute($sqlParams, false, $errorRowArr, $affectedRows);
                     unset($sqlParams);
                     if (count($errorRowArr) && !empty($errorRowArr[0]['sheetName'])) {
                         $totalInsertErrorArr[] = $errorRowArr;
                         unset($errorRowArr);
                     }
                 }
             }
             //記錄數據不完整的行
             if (count($emptyErrorArr)) {
                 $totalEmptyErrorArr[] = $emptyErrorArr;
                 $emptyErrorArr = array();
             }
         }
         /*if (count($totalEmptyErrorArr)) {
               echo '有' . count($totalEmptyErrorArr) . '條數據不完整';
               print_r($totalEmptyErrorArr);
           }
           if (count($totalInsertErrorArr)) {
               echo '有' . count($totalInsertErrorArr) . '條數據插入失敗';
               var_dump($totalInsertErrorArr);
           }*/
     }
     $currentYear = date('Y');
     $yearArr = array($currentYear - 1 . '-' . $currentYear, $currentYear . '-' . ($currentYear + 1), $currentYear - 2 . '-' . ($currentYear - 1));
     $this->render('data/upload', array('yearArr' => $yearArr, 'totalEmptyErrorArr' => $totalEmptyErrorArr, 'totalInsertErrorArr' => $totalInsertErrorArr, 'post' => isset($_POST['send']) ? true : false, 'affectedRows' => $affectedRows, 'usedTime' => sprintf("%0.2f", microtime(true) - $beginTime)));
 }
開發者ID:denglitong,項目名稱:tice,代碼行數:101,代碼來源:DataController.class.php


注:本文中的DataModel::multipleExecute方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。