• tp数据库操作


    1、常见的数据库操作
    //插入记录
    // $insert=Db::execute("insert into tp_user (username,password) values ('dome','pass2')");
    ////用?号代表参数占位符 []里的就是参数
    // $insert=Db::execute("insert into tp_user (username,password) values (?,?)",['domeUser','domepass']);
    //:username,:password占位符,后面[]号内的表是参数key、val和数据库字段一一对应
    //$insert=Db::execute("insert into tp_user (username,password) values (:username,:password)",['username'=>'admin','password'=>'sjdn2345']);
     //插入构造器
    // $insert =Db::table('tp_user')->insert(['username'=>'admin3','password'=>'pass3']);
     ////插入构造器,此方法不用加前缀tp_
    // $insert =Db::name('user')->insert(['username'=>'admin4','password'=>'pass4']);
    ---------
    //更新记录
    //$updata=Db::execute("update tp_user set username='admin2' where id=1");
     //更新构造器
    // $updata=Db::table('tp_user')->where('id',2)->update(['username'=>'222','password'=>'333']);
    ---------

    //查询记录
    //$select=Db::query("select * from tp_user order by id desc limit 10");
    // $select=Db::query("select * from tp_user where id=?",[1]);
    //查询构造器
    //$select=Db::table('tp_user')->where('id',2)->select();
    //$data=Db::name('user')->field('username,password')->where('id',1)->order('id','desc')->limit(10)->select();
    //查询单条记录
    // $select=Db::name('user')->where("id",3)->find();
    //查询条件查询 可以用 '>= ',4 '<= ',4 '<>',4 'in',[4,5,6,7] 'between',[5,10] 'not in',[1,5,8] 'exp'," in(1,2,3,4)" 'exp'," like '%1%'" 'exp',"=3"
    //$select=Db::name('user')->where("id",'in',[3,4,5])->select();
    //查询满足条件id=3 and username like '%admin3%'
    //$select=Db::name('user')->where("id",'exp'," like '%3%' or username='admin4'" )->select();
    //查询满足条件id=4 and username like '%admin4%'
    //$select=Db::name('user')->where(['id'=>['=',4],'username'=>['like','%admin4%'],])->select();
    //快捷查询id>0 or username>0
    //$select=Db::name('user')->where('id|username','>',0)->select();
    //视图的创建方法
    //create view user as select a.name,a.age,b.sex from usera as a, userb as b where a.name=b.name;
    //另一种query对象查询方法
    /*
    $query=new hinkdbQuery;
    $query->name('user')->where('id',3);
    $result=Db::select($query);
    */
     //查询单条语句的某个值
    //$name=Db::name('user')->where('id',3)->value('username');
    //查询某列字段返回是数组,的username为value值 id为下标key
    //$name=Db::name('user')->where('status',1)->column('username','id');
    //查询数据集,ID为字段对应的所有数据集
    // $name=Db::name('user')->where('status',1)->column('*','id');
    //聚合查询 count() max('id') min('id') avg() sum()
    //$count=Db::name('user')->where("status",1)->count();
    //简单查询
    // $select=Db::name('user')->where("id > 3 and id<5")->select();
    //简单查询用占位符防止注入 建议这么写法
    // $select=Db::name('user')->where("id > :id and username like :username",['id'=>3,'username'=>'dome'])->select();
    //查询时间2016-01-01自动转换成时间戳
    // $result=Db::name('user')->whereTime('addTime','>','2016-01-01')->select();
    // $result=Db::name('user')->whereTime('addTime','between',['2016-01-01','2017-01-01'])->select();
    //查询今天数据 今天today 昨天yesterday 本周week 上周last week
    // $result=Db::name('user')->whereTime('addTime','today')->select();
    //分块查询
    /*
    Db::name('user')->where('id>0')->chunk(2,function($list){
    foreach ($list as $data)
    {
    print_r($data);
    }
    });
    */

    -----------
    //清空表数据
    //$clear= Db::execute("TRUNCATE table tp_user");

    //删除构造器
    //$delete=Db::table('tp_user')->where('id',2)->delete();
    ----------
    //自动事务处理
    /*
    Db::transaction(function(){
    Db::name('user')->where("id",1)->delete();//删除
    Db::name('user_group')->insert(['uid'=>121,'groupName'=>'删除']);//插入
    });
    */
    //手动事务处理
    /*
    Db::startTrans();
    try{
    Db::name('user')->where("id",1)->delete();//删除
    Db::name('user_group')->insert(['uid'=>131,'groupName'=>'删除']);//插入
    Db::commit();
    }catch (Exception $e){
    Db::rollback();
    }
    */

    ----------


    //跨数据库查询 tp2是第二个数据库 注意此方法需要在Config.php配置数据库连接参数与database.php一样
    // $db2=Db::connect('tp2')->query("insert into tp_bank (uid,bankName,number) values (3,'dome','pass2')");
    //$db2=Db::connect('tp2')->query("select * from tp_bank ");
    config.php配置内容如下:
    //连接数据库
    'tp2'=>[
    // 数据库类型
    'type' => 'mysql',
    // 服务器地址
    'hostname' => '127.0.0.1',
    // 数据库名
    'database' => 'tp2',
    // 用户名
    'username' => 'root',
    // 密码
    'password' => 'root',
    // 端口
    'hostport' => '',
    // 连接dsn
    'dsn' => '',
    // 数据库连接参数
    'params' => [],
    // 数据库编码默认采用utf8
    'charset' => 'utf8',
    // 数据库表前缀
    'prefix' => 'tp_',
    // 数据库调试模式
    'debug' => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy' => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate' => false,
    // 读写分离后 主服务器数量
    'master_num' => 1,
    // 指定从服务器序号
    'slave_no' => '',
    // 是否严格检查字段是否存在
    'fields_strict' => true,
    // 数据集返回类型
    'resultset_type' => 'array',
    // 自动写入时间戳字段
    'auto_timestamp' => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain' => false,
    ]

    2、
  • 相关阅读:
    hdu acm 2844 Coins 解题报告
    hdu 1963 Investment 解题报告
    codeforces 454B. Little Pony and Sort by Shift 解题报告
    广大暑假训练1 E题 Paid Roads(poj 3411) 解题报告
    hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
    hdu acm 1114 Piggy-Bank 解题报告
    poj 2531 Network Saboteur 解题报告
    数据库范式
    ngnix 配置CI框架 与 CI的简单使用
    Vundle的安装
  • 原文地址:https://www.cnblogs.com/bk7788/p/7251497.html
Copyright © 2020-2023  润新知