本文整理匯總了PHP中ResultSet::add方法的典型用法代碼示例。如果您正苦於以下問題:PHP ResultSet::add方法的具體用法?PHP ResultSet::add怎麽用?PHP ResultSet::add使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類ResultSet
的用法示例。
在下文中一共展示了ResultSet::add方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: query
/**
+----------------------------------------------------------
* 查詢數據方法,支持動態緩存
* 動態緩存方式為可配置,默認為文件方式
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $sql 查詢語句
* @param boolean $cache 是否緩存查詢
* @param boolean $lazy 是否惰性加載
+----------------------------------------------------------
* @return mixed
+----------------------------------------------------------
* @throws ThinkExecption
+----------------------------------------------------------
*/
public function query($sql = '', $cache = true, $lazy = false, $lock = false)
{
if (!empty($sql)) {
$this->queryStr = $sql;
}
if ($lock) {
$this->queryStr .= $this->setLockMode();
}
if ($lazy) {
// 延時讀取數據庫
return $this->lazyQuery($this->queryStr);
}
if (C('DB_CACHE_ON') && $cache) {
// 啟用數據庫緩存
$guid = md5($this->queryStr);
//獲取緩存數據
$length = S($guid . '_count');
if (!$length) {
$data = S($guid);
} else {
$data = new ResultSet();
for ($i = 0; $i < $length; $i++) {
$array = S($guid . '_' . $i);
foreach ($array as $key => $val) {
$data->add($val);
}
}
}
if (!empty($data)) {
return $data;
}
}
// 進行查詢
$data = $this->_query();
if (C('DB_CACHE_ON')) {
//如果啟用數據庫緩存則重新緩存
$rowNums = $this->numRows;
//總的記錄數
if ($rowNums > C('DB_CACHE_MAX')) {
//如果記錄數超過設置範圍,多文件緩存,
//避免serialize超時
$length = ceil($rowNums / C('DB_CACHE_MAX'));
//緩存文件數
for ($i = 0; $i < $length; $i++) {
//依次緩存
S($guid . '_' . $i, $data->range(C('DB_CACHE_MAX') * $i, C('DB_CACHE_MAX')));
}
//記錄緩存文件數目
S($guid . '_count', $length);
} else {
//全部數據緩存
S($guid, $data);
}
}
return $data;
}