thinkphp的SQL八大查询方式

来源:互联网 发布:oa办公系统java源代码 编辑:程序博客网 时间:2024/06/06 01:44

直接贴上代码

<?php// 本类由系统自动生成,仅供测试用途namespace Home\Controller;//use Home\Model\UserModel;use Think\Controller;use Think\Model;class MysqlController extends Controller{    function index()    {         //一:索引方式        //字符串查询       /* $user = M("user");  //没有new        var_dump($user->where('id = 2048')->select());*/        //索引数组查询  推荐        /* $user = M("user");        $arr['id'] = 2048;        $arr['user'] = 'lzh';        $arr['_logic'] = 'or';  //定义查询逻辑        var_dump($user->where($arr)->select());*/        //对象查询        /* $user = M("user");        $obj = new \stdClass();//PS:stdClass 类是 PHP 内置的类,可以理解为一个空类,在这里可以理解为把条件的字段作为        //成员保存到 stdClass 类里。而这里的'\'是将命名空间设置为根目录,否则会导致当前目录找不到此类。使用对象和数组查询,        //效果是一样的,可以互换。在大多数情况下, ThinkPHP 推荐使用数组形式更加高效。        $obj->id = 2048;        $obj->user = 'lzh';        $obj->_logic = 'or';        var_dump($user->where($obj)->select());*/        //二:表达式查询  用array表示        /* $user = M("user");        $map['id'] = array('eq', 2048); // neq gt egt lt elt        //like 1.$map['user'] = array('like', '%小%');$map['user'] = array('notlike', '%小%');        //$map['user'] = array('like', array('%小%', '%蜡%'), 'AND');        //between $map['id'] = array('between','1,3'); $map['id'] = array('not between','1,3');        //$map['id'] = array('between',array('1','3'));        //in $map['id'] = array('in','1,2,4');$map['id'] = array('not in','1,2,4');        var_dump($user->where($map)->select());*/        //自定义查询        /*$user = M("user");        $map['id'] = array('exp','in (1,2,4)');//原始语句        $map['id'] = array('exp', '=1');        $map['user'] = array('exp', '="蜡笔小新"'); $map['_logic'] = 'OR';        var_dump($user->where($map)->select());*/        //三:快捷查询 (归纳:|&array一一对应)        /*$user = M('User');        $map['user|email'] = 'a';  //'|'换成'&'变成AND        $map['id&user'] = array(1,'蜡笔小新','_multi'=>true);        $map['id&user'] = array(array('gt', 0),'蜡笔小新','_multi'=>true);        var_dump($user->where($map)->select());*/        //四:区间查询 (归纳:一个大array两个小array组合限定区间)        /*$user = M('User');        $map['id'] = array(array('gt', 1), array('lt', 4));        $map['id'] = array(array('gt', 1), array('lt', 4), 'OR');        var_dump($user->where($map)->select());*/        //五:组合查询        /*//字符串查询(_string)        $user = M('User');        $map['id'] = array('eq', 1);        $map['_string'] ='user="蜡笔小新" AND email="xiaoxin@163.com"';        //请求字符串查询(_query)  安全性高 推荐使用        $map['id'] = array('eq', 1);        $map['_query'] ='user=蜡笔小新&email=xiaoxin@163.com&_logic=OR';        //复合查询(_complex)        $where['user'] = array('like', '%小%');        $where['id'] = 1;        $where['_logic'] = 'OR';        $map['_complex'] = $where;        $map['id'] = 3;        $map['_logic'] = 'OR';        var_dump($user->where($map)->select());*/        //六.统计查询        //var_dump($user->count('email')); min max avg sum        //七.动态查询       /* $user = M('User');        var_dump($user->getByemail('xiaoxin@163.com'));        var_dump($user->getFieldByUser('路飞', 'id'));*///通过user得到相对应id值        //八.SQL 查询        /*var_dump($user->query('SELECT * FROM think_user'));  //读取        var_dump($user->execute('UPDATE think_user set user="蜡笔大新" WHERE id=1'));  //写入*/    }}

0 0