wordblog

数据库操作之原生sql操作

<?php
namespace app\index\controller;
use think\Db;

class Index
{
    public function index()
    {
        echo "hello world";
    }

    public function sqlAdd(){
        //插入数据
        $result=Db::execute(\'insert into think_test (name,state) values("周杰伦",1)\');
        var_dump($result);//返回受影响的行数
    }

    public function sqlUpd(){
        //修改数据
        $result=Db::execute(\'update think_test set name="张学友",state=0 where id=1\');
        var_dump($result);//返回受影响的行数
    }

    public function sqlDel(){
        //删除数据
        $result=Db::execute(\'delete from think_test where id=1\');
        var_dump($result);//返回受影响的行数
    }

    public function sqlSel(){
        //查询数据
        $result=Db::query(\'select * from think_test\');
        var_dump($result);//返回数组
    }
}

 

数据库操作之查询构造器

//==========================查询构造器==========================
    public function tabAdd(){
        //插入数据 如果不写表前缀 把table改为name即可
        $result=Db::table(\'think_test\')->insert([\'name\'=>\'段誉\',\'state\'=>1]);
        var_dump($result);
    }

    public function tabUpd(){
        //修改数据 如果不写表前缀 把table改为name即可
        $result=Db::table(\'think_test\')->where(\'id\',9)->update([\'name\'=>\'虚竹\']);
        var_dump($result);
    }

    public function tabDel(){
        //删除数据 如果不写表前缀 把table改为name即可
        $result=Db::table(\'think_test\')->where(\'id\',9)->delete();
        var_dump($result);
    }

    public function tabSel(){
        //查询数据 如果不写表前缀 把table改为name即可
        $result=Db::table(\'think_test\')->select();
        var_dump($result);
    }

    //使用助手函数db
    public function dbSel(){
        $db=db(\'test\');//参数为表名
        $result=$db->select();
        var_dump($result);
        //其他操作类似
        //ps:助手函数db默认每次都会重新连接数据库,所以不推荐使用
    }

    //链式操作
    public function linkSel(){
        $list=Db::name(\'test\')
            ->where(\'state\',1)
            ->field([\'name\',\'state\'])
            ->order(\'id\',\'desc\')
            ->limit(10)
            ->select();
        var_dump($list);
        //ps:链式操作select() 要在最后 其他条件顺序无所谓
        //更多方法请查询手册
    }

 数据库操作之模型

<?php
namespace app\index\controller;
use app\index\model\User as UserModel;

class User
{
    //==========================模型==========================
    /*模型是一种对象关系映射简称ORM,一般来说每个数据表会和一个模型对应
    ,模型不是简单的CURD操作,那种用Db类即可,模型的Db类的区别在于,模型
    查询返回的是对象,Db查询返回的是数组,模型是比Db类更高级的数据封装
    */

    //插入数据属性
    public function add1(){
        $user = new UserModel();
        $user->name = \'郭靖\';
        $user->email = \'guojing@qq.com\';
        $user->birthday = strtotime(\'2000-1-1\');
        if($user->save()){
            return \'插入成功\';
        }else{
            return \'插入失败\';
        }
    }

    //插入数据数组
    public function add2(){
        $user[\'name\'] = \'黄蓉\';
        $user[\'email\'] = \'huangrong@qq.com\';
        $user[\'birthday\'] = strtotime(\'2003-1-1\');
        if(UserModel::create($user)){
            return \'插入成功\';
        }else{
            return \'插入失败\';
        }
    }

    //插入数据多条
    public function addList(){
        $user = new UserModel();
        $list = [
            [\'name\'=>\'张三\',\'email\'=>\'zhangsan@qq.com\',\'birthday\'=>strtotime(\'2000-1-1\')],
            [\'name\'=>\'李四\',\'email\'=>\'lishi@qq.com\',\'birthday\'=>strtotime(\'2005-1-1\')]
        ];
        if($user->saveAll($list)){
            return \'插入成功\';
        }else{
            return \'插入失败\';
        }
    }

    //更新数据 查找并更新
    public function upd1(){
        $user = UserModel::get(1);//参数为id
        // var_dump($user);
        $user->name = \'刘德华\';
        $user->email = \'liudehua@qq.com\';
        if($user->save()){
            return \'更新成功\';
        }else{
            return \'更新失败\';
        }
    }

    //更新数据 直接更新
    public function upd2(){
        $user = new UserModel();
        $user -> save([\'name\'=>\'郭富城\',\'email\'=>\'guofucheng@qq.com\'],[\'id\'=>1]);
    }

    //更新数据 多条
    public function upd3(){
        $user = new UserModel();
        $list=[
            [\'id\'=>1,\'name\'=>\'张三丰\',\'email\'=>\'zsf@qq.com\'],
            [\'id\'=>2,\'name\'=>\'欧阳锋\',\'email\'=>\'oyf@qq.com\']
        ];
        if($user->saveAll($list)){
            return \'更新成功\';
        }else{
            return \'更新失败\';
        }
    }

    //查询数据 id
    public function select1(){
        $user = UserModel::get(1);
        echo $user->name.\'<br/>\';
        echo $user->email.\'<br/>\';
        echo $user->birthday.\'<br/>\';
    }

    //查询数据 数组
    public function select2(){
        $user = UserModel::get([\'name\'=>\'张三\']);
        echo $user->name.\'<br/>\';
        echo $user->email.\'<br/>\';
        echo $user->birthday.\'<br/>\';
    }

    //查询数据
    public function select3(){
        $user = new UserModel();
        $result = $user->where(\'name\',\'张三\')->find();
        echo $result->birthday;
    }

    //查询数据 多个数据
    public function selectAll(){
        $list = UserModel::all([1,2,3]);
        foreach ($list as $key => $value) {
            echo $value->name.\'<br/>\';
            echo $value->email.\'<br/>\';
            echo $value->birthday.\'<br/>\';
        }
    }
}

 

分类:

技术点:

相关文章: