|
@@ -22,7 +22,6 @@ class Base
|
|
"GROUP" => " GROUP BY %s",
|
|
"GROUP" => " GROUP BY %s",
|
|
"LIMIT" => " LIMIT %d, %d"
|
|
"LIMIT" => " LIMIT %d, %d"
|
|
);
|
|
);
|
|
- private $query;
|
|
|
|
private $setArray = array();
|
|
private $setArray = array();
|
|
public $modelSQL = "";
|
|
public $modelSQL = "";
|
|
protected $fields;
|
|
protected $fields;
|
|
@@ -538,14 +537,24 @@ class Base
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
* 查询的字段
|
|
* 查询的字段
|
|
- * @param String $fileds
|
|
|
|
|
|
+ * @param String $fields
|
|
*/
|
|
*/
|
|
- final function fields($fileds = "*")
|
|
|
|
|
|
+ final function fields($fields = "*")
|
|
{
|
|
{
|
|
$this->fields = null;
|
|
$this->fields = null;
|
|
- if (empty($fileds)) $fileds = "*";
|
|
|
|
- if (is_array($fileds)) $fileds = join(',', $fileds);
|
|
|
|
- $this->fields = $fileds;
|
|
|
|
|
|
+ if (empty($fields)) $fields = "*";
|
|
|
|
+ if (is_array($fields)) {
|
|
|
|
+ foreach($fields as $key => $val)
|
|
|
|
+ {
|
|
|
|
+ $alias = explode('.', $val);
|
|
|
|
+ if(count($alias) > 1)
|
|
|
|
+ {
|
|
|
|
+ $fields[$key] = $alias[0] . ".`".join(".", array_slice($alias, 1))."`";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $fields = join(',', $fields);
|
|
|
|
+ }
|
|
|
|
+ $this->fields = $fields;
|
|
return $this;
|
|
return $this;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -743,9 +752,36 @@ class Base
|
|
return $this;
|
|
return $this;
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
- * OR条件, 参数为数值
|
|
|
|
|
|
+ * 操作where条件语句
|
|
|
|
+ *
|
|
|
|
+ * @param $and
|
|
|
|
+ * @param string $insideBrackets or条件里边的操作符
|
|
|
|
+ * @param string $outsideBrackets 链接or条件的操作符
|
|
|
|
+ * @return $this
|
|
*/
|
|
*/
|
|
- final function or($or, $opt = "AND")
|
|
|
|
|
|
+ final function and($and, $insideBrackets = "OR", $outsideBrackets = "AND") {
|
|
|
|
+ return $this->or($and, $insideBrackets, $outsideBrackets);
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 操作where条件语句
|
|
|
|
+ *
|
|
|
|
+ * @param $or
|
|
|
|
+ * @param string $insideBrackets or条件里边的操作符
|
|
|
|
+ * @param string $outsideBrackets 链接or条件的操作符
|
|
|
|
+ * @return $this
|
|
|
|
+ */
|
|
|
|
+ final function andStr($or, $insideBrackets = "AND", $outsideBrackets = "OR") {
|
|
|
|
+ return $this->orStr($or, $insideBrackets, $outsideBrackets);
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 操作where条件语句
|
|
|
|
+ *
|
|
|
|
+ * @param $or
|
|
|
|
+ * @param string $insideBrackets or条件里边的操作符
|
|
|
|
+ * @param string $outsideBrackets 链接or条件的操作符
|
|
|
|
+ * @return $this
|
|
|
|
+ */
|
|
|
|
+ final function or($or, $insideBrackets = "AND", $outsideBrackets = "OR")
|
|
{
|
|
{
|
|
if(empty($or)) return $this;
|
|
if(empty($or)) return $this;
|
|
$orCond = array();
|
|
$orCond = array();
|
|
@@ -754,23 +790,32 @@ class Base
|
|
$orCond[] = sprintf($this->_query['OR'], $key, $this->setQuote($val));
|
|
$orCond[] = sprintf($this->_query['OR'], $key, $this->setQuote($val));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ $orCond[] = $or;
|
|
|
|
+ }
|
|
if(!empty($this->where)) {
|
|
if(!empty($this->where)) {
|
|
- $this->where .= " OR (". join(" ". $opt . " ", $orCond) .")";
|
|
|
|
|
|
+ $this->where .= " ". $outsideBrackets. " (". join(" ". $insideBrackets . " ", $orCond) .")";
|
|
}else{
|
|
}else{
|
|
- $this->where = " WHERE (". join(" ". $opt . " ", $orCond) .")";
|
|
|
|
|
|
+ $this->where = " WHERE (". join(" ". $insideBrackets . " ", $orCond) .")";
|
|
}
|
|
}
|
|
return $this;
|
|
return $this;
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
- * OR 条件,参数为字符串
|
|
|
|
|
|
+ * 操作where条件语句
|
|
|
|
+ *
|
|
|
|
+ * @param $or
|
|
|
|
+ * @param string $insideBrackets or条件里边的操作符
|
|
|
|
+ * @param string $outsideBrackets 链接or条件的操作符
|
|
|
|
+ * @return $this
|
|
*/
|
|
*/
|
|
- final function orStr($or, $opt = "OR") {
|
|
|
|
|
|
+ final function orStr($or, $insideBrackets = "AND", $outsideBrackets = "OR") {
|
|
if(empty($or)) return $this;
|
|
if(empty($or)) return $this;
|
|
if(is_array($or)) {
|
|
if(is_array($or)) {
|
|
- $or = join(" ". $opt . " ", $or);
|
|
|
|
|
|
+ $or = join(" ". $insideBrackets . " ", $or);
|
|
}
|
|
}
|
|
if(!empty($this->where)) {
|
|
if(!empty($this->where)) {
|
|
- $this->where .= " ". $opt ." (". $or . ")";
|
|
|
|
|
|
+ $this->where .= " ". $outsideBrackets ." (". $or . ")";
|
|
}
|
|
}
|
|
return $this;
|
|
return $this;
|
|
}
|
|
}
|
|
@@ -955,16 +1000,6 @@ class Base
|
|
}
|
|
}
|
|
return $this;
|
|
return $this;
|
|
}
|
|
}
|
|
- /**
|
|
|
|
- * 执行更新操作,updateRows的alias
|
|
|
|
- * @param String $table
|
|
|
|
- * @return number
|
|
|
|
- */
|
|
|
|
- /*
|
|
|
|
- final function update($table){
|
|
|
|
- return $this->updateRows($table);
|
|
|
|
- }
|
|
|
|
- */
|
|
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
* 执行更新操作
|
|
* 执行更新操作
|
|
@@ -1059,7 +1094,6 @@ class Base
|
|
return toUtf8($n);
|
|
return toUtf8($n);
|
|
}, $str);
|
|
}, $str);
|
|
}
|
|
}
|
|
-
|
|
|
|
return toUtf8($str);
|
|
return toUtf8($str);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1078,7 +1112,6 @@ class Base
|
|
}
|
|
}
|
|
\Qii::setError(false, __LINE__, 1506, 'Alias ' . get_called_class() . '->' . $method . '()');
|
|
\Qii::setError(false, __LINE__, 1506, 'Alias ' . get_called_class() . '->' . $method . '()');
|
|
}
|
|
}
|
|
-
|
|
|
|
\Qii::setError(false, __LINE__, 1506, get_called_class() . '->' . $method . '()');
|
|
\Qii::setError(false, __LINE__, 1506, get_called_class() . '->' . $method . '()');
|
|
}
|
|
}
|
|
}
|
|
}
|