tp:数据库操作及增删改查

<?php


namespace app\index\controller;


use think\Db;
/*
 * 连接数据库
 * 1、全局配置:config/database.php
 * 2、动态配置:think\db\query.php中有一个方法 connect()
 * 3、DSN链接:数据库类型://用户名:密码@数据库地址:端口号/数据库名称#字符集
 * */
class Demo4
{
    //全局配置
    public  function conn1(){
      return   Db::table('tp_user')->where('id',1)->value('username');
    }

    //动态配置
    Public function conn2(){
        return   Db::connect([
            //一次仅生效
            'type'            => 'mysql',
            // 服务器地址
            'hostname'        => '127.0.0.1',
            // 数据库名
            'database'        => 'tp5',
            // 用户名
            'username'        => 'root',
            // 密码
            'password'        => '123456',
        ])

                    ->table('tp_user')->where('id',2)->value('username');
    }
    //dsn
    Public function conn3(){
        $dsn = 'mysql://root:123456@127.0.0.1:3306/tp5#utf8';
        return   Db::connect($dsn)->table('tp_user')->where('id',3)->value('username');
    }
}

增删改查

<?php


namespace app\index\controller;

/*
 * 查询构造器
 * 准备工作:app-Debug=>'true';app_trace=>'true'
 * 系统学习数据库增删改查 curd
 *
 * */

use think\Db;

class Demo5
{
    //1、单条查询
    public function find(){
        /*
         * Db 类数据库操作的入口类
         * 功能:静态调用think\db\Query.php类中的查询方法实现基本操作
         * *table():选择数据表,完整的表名
         * field():用来设置返回的字段或别名
         * where();设置查询条件 表达式,数组
         * 1、单个条件 使用表达式
         * 2、多个条件 使用数组
         * find()返回符合条件的第一条记录,没有的话返回null
         * */
       $res = Db::table('tp_user')
            ->where('id','=',2)
            ->find(); // SELECT * FROM `tp_user` WHERE `id` = 2 LIMIT 1
       dump(is_null($res)?'no find':$res);

        $res1 = Db::table('tp_user')
            ->field('id,username')
            ->where('id','=',2)
            ->find(); //SELECT `id`,`username` FROM `tp_user` WHERE `id` = 2 LIMIT 1
        dump(is_null($res1)?'no find':$res1);

        $res2 = Db::table('tp_user')
            ->field(['id'=>'uid','username'=>'name'])
            ->where('id','=',2)
            ->find(); //SELECT `id` AS `uid`,`username` AS `name` FROM `tp_user` WHERE `id` = 2 LIMIT 1
        dump(is_null($res2)?'no find':$res2);

        $res3 = Db::table('tp_user')
            ->field(['id'=>'uid','username'=>'name'])
            ->where('id',2)//如果相等关系,=可以省略
            ->find(); //SELECT `id` AS `uid`,`username` AS `name` FROM `tp_user` WHERE `id` = 2 LIMIT 1
        dump(is_null($res3)?'no find':$res3);

        $res4 = Db::table('tp_user')
            ->field(['id'=>'uid','username'=>'name'])
           //->where('id',2)//如果相等关系,=可以省略
            ->find(2); //如果是主键查询可省略where语句
        dump(is_null($res4)?'no find':$res4);
    }


    //2、多条查询
    public function select(){

        //select()返回的是一个二维数组,没有数据返回一个孔数组

      $res =   Db::table('tp_user')
            ->field('id,username')
            ->where([
                ['sex','=','man'],
                ['age','>=',5]
            ])->select();
      if(empty($res)){
          return 'no';
      }else{
          foreach ($res as $row){
              dump($row);
          }
      }
    }

    //3、单条插入
    public function insert(){
        //insert()成功返回新增数量,失败返回false
        $data = [
            'username'=>'lll2',
            'age'=>18,
            'sex'=>'woman',
            'delete_time'=>0,
            'password'=>'123'
        ];
       //return  Db::table('tp_user')->insert($data);// INSERT INTO `tp_user` (`username` , `age` , `sex` , `delete_time` , `password`) VALUES ('lll' , 18 , 'woman' , 0 , '123')
        //return  Db::table('tp_user')->data($data)->insert();
        //插入的同时返回新增主键Id
        //insertGetId()同时执行两步,第一步插入,第二部返回主键id
        return  Db::table('tp_user')->insertGetId($data);
    }


    //4、多条插入
    public function insertAll(){
        $data = [
            ['username'=>'lll2',
                'age'=>18,
                'sex'=>'woman',
                'delete_time'=>0,
                'password'=>'123'],
            ['username'=>'lll4',
                'age'=>13,
                'sex'=>'woman',
                'delete_time'=>0,
                'password'=>'123'],
            ['username'=>'lll2e',
                'age'=>13,
                'sex'=>'woman',
                'delete_time'=>0,
                'password'=>'123'],
        ];

        return Db::table('tp_user')->data($data)->insertAll();
    }
    //5、更新操作
    public function update(){
        //update必须要有更新条件,update 不支持Data()
        //如果更新条件是主键的话,可以直接把主键写到更新数组中
       // return Db::table('tp_user')
       //     ->where('id',4)
        //    ->update(['username'=>'hahah4']);//UPDATE `tp_user` SET `username` = 'hahah4' WHERE `id` = 4
        //如果更新条件是主键的话,可以直接把主键写到更新数组中
        return Db::table('tp_user')
            ->update(['username'=>'hahah4','id'=>5]);
    }

    //6、删除操作
    public function delete(){
        return Db::table('tp_user')
            ->where('id',11)
            ->delete();
    }
    //原生查询
    public function query(){
       $sql =  "select username,age from tp_user where id in(2,3)";
       dump(Db::query($sql));
    }
    //原生写操作:更新 删除 添加
    public function execute(){
       // Db::execute("update tp_user set username='dddd' where id=1");
        //return Db::execute("insert into tp_user set username='ddddd',password='123'");
        return Db::execute("delete from tp_user where username='ddddd'");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值