This commit is contained in:
thinkphp
2016-11-14 11:27:22 +08:00

View File

@@ -373,12 +373,13 @@ class Query
* @access public * @access public
* @param string $field 字段名 * @param string $field 字段名
* @param mixed $default 默认值 * @param mixed $default 默认值
* @param bool $force 强制转为数字类型
* @return mixed * @return mixed
*/ */
public function value($field, $default = null) public function value($field, $default = null, $force = false)
{ {
$result = false; $result = false;
if (!empty($this->options['cache'])) { if (empty($options['fetch_sql']) && !empty($this->options['cache'])) {
// 判断查询缓存 // 判断查询缓存
$cache = $this->options['cache']; $cache = $this->options['cache'];
if (empty($this->options['table'])) { if (empty($this->options['table'])) {
@@ -397,6 +398,9 @@ class Query
return $pdo; return $pdo;
} }
$result = $pdo->fetchColumn(); $result = $pdo->fetchColumn();
if ($force) {
$result = is_numeric($result) ? $result + 0 : $result;
}
if (isset($cache)) { if (isset($cache)) {
// 缓存数据 // 缓存数据
if (isset($cache['tag'])) { if (isset($cache['tag'])) {
@@ -422,7 +426,7 @@ class Query
public function column($field, $key = '') public function column($field, $key = '')
{ {
$result = false; $result = false;
if (!empty($this->options['cache'])) { if (empty($options['fetch_sql']) && !empty($this->options['cache'])) {
// 判断查询缓存 // 判断查询缓存
$cache = $this->options['cache']; $cache = $this->options['cache'];
if (empty($this->options['table'])) { if (empty($this->options['table'])) {
@@ -489,7 +493,7 @@ class Query
*/ */
public function count($field = '*') public function count($field = '*')
{ {
return (int) $this->value('COUNT(' . $field . ') AS tp_count', 0); return $this->value('COUNT(' . $field . ') AS tp_count', 0, true);
} }
/** /**
@@ -500,7 +504,7 @@ class Query
*/ */
public function sum($field = '*') public function sum($field = '*')
{ {
return $this->value('SUM(' . $field . ') AS tp_sum', 0) + 0; return $this->value('SUM(' . $field . ') AS tp_sum', 0, true);
} }
/** /**
@@ -511,8 +515,7 @@ class Query
*/ */
public function min($field = '*') public function min($field = '*')
{ {
$value = $this->value('MIN(' . $field . ') AS tp_min', 0); return $this->value('MIN(' . $field . ') AS tp_min', 0, true);
return is_numeric($value) ? $value + 0 : $value;
} }
/** /**
@@ -523,8 +526,7 @@ class Query
*/ */
public function max($field = '*') public function max($field = '*')
{ {
$value = $this->value('MAX(' . $field . ') AS tp_max', 0); return $this->value('MAX(' . $field . ') AS tp_max', 0, true);
return is_numeric($value) ? $value + 0 : $value;
} }
/** /**
@@ -535,7 +537,7 @@ class Query
*/ */
public function avg($field = '*') public function avg($field = '*')
{ {
return $this->value('AVG(' . $field . ') AS tp_avg', 0) + 0; return $this->value('AVG(' . $field . ') AS tp_avg', 0, true);
} }
/** /**
@@ -1047,7 +1049,10 @@ class Query
public function table($table) public function table($table)
{ {
if (is_string($table)) { if (is_string($table)) {
if (strpos($table, ',')) { if (strpos($table, ')')) {
// 子查询
$table = $table;
} elseif (strpos($table, ',')) {
$tables = explode(',', $table); $tables = explode(',', $table);
$table = []; $table = [];
foreach ($tables as $item) { foreach ($tables as $item) {