> php教程 > php手册 > tp2.2支持子查询

tp2.2支持子查询

WBOY
풀어 주다: 2016-06-07 11:45:29
원래의
1641명이 탐색했습니다.

使tp2.2支持子查询,比较上线的项目 没办法总升级框架....tp3.0以下不能用子查询 比较无语了 更改后使用方法和tp3.0一样
更改/ThinkPHP/Lib/Think/Db/Db.class.php和/ThinkPHP/Lib/Think/Core/Model.class.php

懒人给了压缩包 tp2.1和2.2通用
直接解压到/ThinkPHP/Lib/Think/Core 目录下


Model.class.php select函数改为public function select($options=array()) {<br>         if(is_string($options) || is_numeric($options)) {<br>             // 根据主键查询<br>             $pk   =  $this->getPk();<br>             if(strpos($options,',')) {<br>                 $where[$pk] =  array('IN',$options);<br>             }else{<br>                 $where[$pk]   =  $options;<br>             }<br>             $options =  array();<br>             $options['where'] =  $where;<br>         }elseif(false === $options){<br>             $options =  array();<br>             // 分析表达式<br>             $options =  $this->_parseOptions($options);<br>             return  '( '.$this->db->buildSelectSql($options).' )';<br>         }<br>         // 分析表达式<br>         $options =  $this->_parseOptions($options);<br>         $resultSet = $this->db->select($options);<br>         if(false === $resultSet) {<br>             return false;<br>         }<br>         if(empty($resultSet)) { // 查询结果为空<br>             return null;<br>         }<br>         $this->_after_select($resultSet,$options);<br>         return $resultSet;<br>     }Db.class.php parseTable函数改为protected function parseTable($tables) {<br>         if(is_array($tables)) {// 支持别名定义<br>             $array   =  array();<br>             foreach ($tables as $table=>$alias){<br>                 if(!is_numeric($table))<br>                     $array[] =  $this->parseKey($table).' '.$this->parseKey($alias);<br>                 else<br>                     $array[] =  $this->parseKey($table);<br>             }<br>             $tables  =  $array;<br>         }elseif(is_string($tables)){<br>             $tables  =  explode(',',$tables);<br>             //array_walk($tables, array(&$this, 'parseKey'));//支持子查询 取消过滤<br>         }<br>         return implode(',',$tables);<br>     }

附件 Core.zip ( 16.2 KB 下载:143 次 )

AD:真正免费,域名+虚机+企业邮箱=0元

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿