zoukankan      html  css  js  c++  java
  • 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、
  • 相关阅读:
    mysql常用命令
    怎么在cmd中输入mysql就可以进去mysql控制台
    ORA-01659: 无法分配超出 7 的 MINEXTENTS
    Oracle修改表空间自增长
    整理下.net分布式系统架构的思路
    Net分布式系统之一:系统整体框架介绍
    QT QTreeWidget 的一个例子 显示文件(夹)的树形结构
    待读 QT 博客
    如何为 QT5 装上 QT4 才有的库
    Python 获取文件夹里所有 log 的起止时间戳
  • 原文地址:https://www.cnblogs.com/bk7788/p/7251497.html
Copyright © 2011-2022 走看看