/** * 获取每个表的最大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); }
/** * 将数据写到目标数据库 * @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); }