コード例 #1
0
ファイル: main.php プロジェクト: dormscript/dataTransfer
 /**
  * 获取每个表的最大ID,最小ID
  * @return [type] [description]
  */
 public function getId()
 {
     unset(\Data\Library\Db::$dbPool['0']);
     $min = $max = array();
     foreach ($this->setting as $tablename => $taskNum) {
         $modelObj = \Data\Models\Models::getObj($tablename);
         $dbType = !empty($modelObj->readDbName) ? $modelObj->readDbName : 'read';
         $tableNameStr = str_replace(".", "_", $tablename);
         //解决库重名时desc table出错的问题
         $realTableName = $modelObj->getTablename();
         //获取表主键名字
         $descSql = "desc {$realTableName}";
         $row = \Data\Library\Db::exeSql($dbType, $descSql, 1);
         $primiaryKey = current($row['0']);
         //查出最小ID
         $sql = "select * from {$realTableName} order by {$primiaryKey} ASC limit 0,1";
         $row = \Data\Library\Db::exeSql($dbType, $sql, 1);
         $min[$tableNameStr] = empty($row['0']) ? 0 : intval(current($row['0']));
         //查出最大ID
         $sql = "select * from {$realTableName} order by {$primiaryKey} DESC limit 0,1";
         $row = \Data\Library\Db::exeSql($dbType, $sql, 1);
         $max[$tableNameStr] = empty($row['0']) ? 0 : intval(current($row['0']));
     }
     unset(\Data\Library\Db::$dbPool['0']);
     return array($min, $max);
 }
コード例 #2
0
 /**
  * 将数据写到目标数据库
  * @param  [type] $newData [description]
  * @return [type]          [description]
  */
 public function writeRs($newData)
 {
     if (empty($newData)) {
         return '';
     }
     $fieldarray = array_keys(current($newData));
     $fields = implode(",", $fieldarray);
     $sql = "replace into {$this->modelObj->descTable} " . "(" . $fields . ") VALUES";
     foreach ($newData as $line) {
         $sql .= "\n(";
         foreach ($line as $field) {
             $sql .= "'" . addslashes($field) . "',";
         }
         $sql = substr($sql, 0, -1) . "),";
     }
     $sql = substr($sql, 0, -1);
     $rs = \Data\Library\Db::exeSql($this->modelObj->writeDbName, $sql, $this->taskid);
 }