美文网首页
数据库操作

数据库操作

作者: Rock_Yao | 来源:发表于2019-01-09 21:21 被阅读0次

    用sql语句的写法:

    查询用query   增删改用execute

    $result2 = Db::connect('db2') ->query('select * from tp_data where id = 6'); 接数据库db2进行操作

    $result3 = Db::connect('db3') ->execute('TRUNCATE table tp_data');接数据库db3进行操作

    连接不同数据库的使用 前提要在database配置文件中 进行配置

    1、查询

    关联查询以及分页

    方法一:$list = Db::name('article')->alias('a')->join('cate c','c.id=a.cateid')->field('a.id,a.title,a.pic,a.author,a.static,c.catename')->paginate(3);

    方法二:使用关联模型,在article模型中定义归从关系:

    在控制器中正常查询:$list = ArticleModel::paginate(5);

    视图输出显示:<td align="center">{$vo.cate.catename}</td>

    普通查询:

    Db::name('data')->where('id',16)->value('name');//指定行name列的值

    Db::name('data')->where('id',16)->column('name');//指定行name列的所有值

    Db::name('users')->find();//一条数据

    Db::name('user')->where('status',1)->field('id,name')->order('id','desc')->limit(10)->select();//全部

    2、模型查询

    Users::get(1);//查询users表中主键为1的数据

    Users::where('mobile','182')->find();//查询users表中mobile为182的数据

    Users::getByMoile(182);//查询users表中mobile为182的数据

    3、条件写法

    Db::name('users')->where('id','<>',4)->select();

    Db::name('users')->where('id','in',[1,2,3,4,5,6])->select();

    Db::name('users')->where('id','between',[1,6])->select();

    Db::name('users')->where('id','>=',1)

                                ->where('name','like','%php%')

                                ->select();

    Db::name('users')->where('id|status','>',0)

    Db::name('users')->where('name','like','%think%')

                                ->where('id',['in',[1,2,3]],['>=',1],'or')

                                ->select();

    等同于:select * from users where 'name' like '%think%' and ('id' in (1,2,3) or 'id' >= 1 )

    使用exp条件表达式,表示后面是原生的sql语句表达式

    Db::name('users')->where('id','exp'," >1 and name ='111'")->select();

    时间查询

    Db::name('users')->whereTime('reg_time','>','2016-01-01')->select();

    //此查询自动将日期转换成时间戳,与数据库中的时间戳比较大小

    Db::name('users')->whereTime('reg_time','>','this week')->select();

    //查询本周一之后的

    Db::name('users')->whereTime('reg_time','>','last week')->select();

    //查询上周的

    Db::name('users')->whereTime('reg_time','>','-2 days')->select();

    //查询最近两天的

    Db::name('users')->whereTime('reg_time','>','today')->select();

    //查询今天的

    Db::name('users')->whereTime('reg_time','between',['2016-1-1','2017-1-1'])->select();

    //查询2016-1-1~2017-1-1的数据(含)

    4、多表查询也叫视图

    Db::view('data','id,name,status') //查data表的id,name,status字段

        ->view('users',['nickname'=>'user_name','mobile','email'],'users.user_id = data.id')

     //查users表的nickname(别名为user_name),mobile,email 通过user_id和id进行关联

        ->where('data.status',1)

        ->order('id desc')->select();

    3、事务

    mysql操作的表类型要设置为InnoDB 才能支持事务 要么全部成功 要么全部失败

    Db::transaction(function (){//放事务代码});

    例如:

    Db::transaction(function (){

        Db::name('data')->delete(1);

        Db::name('data')->insert(['id'=>6,'name'=>'tp','status'=>1]);

    });

    相关文章

      网友评论

          本文标题:数据库操作

          本文链接:https://www.haomeiwen.com/subject/sflnrqtx.html