/** * 下载资源列表,并返回资源数组 */ public function _fetch() { $rawrss = $this->_fetchRss($this->FEED_URL); if (!$rawrss) { LOGW("无法获取 RSS 列表"); return array(); } $rs = $this->rawrss2arr($rawrss); if (empty($rs)) { LOGN("没有从 RSS 列表中获取到资源"); return array(); } return $rs; }
/** * 进行一次 SQL 查询,如果连接断开,则自动重新尝试 */ function db_query($sql) { global $mysqli; global $DB_HOST; global $DB_USER; global $DB_PASSWORD; global $DB_DATABASE; $result = $mysqli->query($sql); if (!$result) { LOGN("第一次查询 MySQL 失败,重试后准备继续: " . $mysqli->error . ". SQL: {$sql}"); /// 重连 MySQL /// FIXME: 连接 MySQL 应该独立成一个函数 $ret = $mysqli->real_connect($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_DATABASE); if (!$ret) { LOGE('无法创建 MySQL 连接: ' . $mysqli->error); return FALSE; } $mysqli->query("set NAMES 'utf8'"); $result = $mysqli->query($sql); if (!$result) { LOGW("第二次查询 MySQL 失败: " . $mysqli->error . ". SQL: {$sql}"); return FALSE; } } return $result; }