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 \think\db\Query;
$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、

tp数据库操作的更多相关文章

  1. laravel基础课程---13、数据库基本操作2(lavarel数据库操作和tp对比)

    laravel基础课程---13.数据库基本操作2(lavarel数据库操作和tp对比) 一.总结 一句话总结: 非常非常接近:也是分为两大类,原生SQL 和 数据库链式操作 学习方法:使用时 多看手 ...

  2. TP框架数据库操作(增删改)

    首先选择一张表,对其进行操作: 对数据库操作之前首先要创建模型: $n = M("account"); 数据库添加数据: 1.使用数组: 1.使用数组 $arr = array(& ...

  3. php框架内的数据库操作(微擎,tp,yii2)

    微擎数据库操作 关键字 查询 pdo_get pdo_getcolumn pdo_getall pdo_getslice pdo_fetchcolumn pdo_fetchall 示例: array ...

  4. ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

    //TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...

  5. ThinkPhp框架的数据库操作(查询)

    TP框架有一套自己的数据库操作的代码,包括数据库的增.删.改.查.本文主要讲解TP框架的数据库查询操作. 找到入口文件的控制器: 我这里的入口文件是Show文件夹下的控制器. 打开Login控制器. ...

  6. thinkPHP数据库操作

    thinkPHP如果要对数据库操作,一般来说首先要做的是在配置文件中链接数据库,然后用M方法实例化一张表,然后就是对表的操作了 可以开启调试功能查看程序执行的sql语句: 1.开启调试功能(默认是已经 ...

  7. TP5对数据库操作的事物作用

    假如: 你写好了一段完整的代码,模型对数据库的操作,增删改查什么的,都没有问题,当然运行速度也是最快的,完全不用担心会出错, 前提肯定是已经写好的一整段代码, 但是,万一服务器中断了呢,执行一半,后面 ...

  8. ThinkPHP 数据库操作之数据表模型和基础模型 ( Model )

    一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function te ...

  9. ThinkPHP5.0框架开发--第7章 TP5.0数据库操作

    ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...

随机推荐

  1. Ant构建文件解析

    <?xml version="1.0" encoding="UTF-8"?> <!-- 在Ant脚本中,project是这个XML文档的根结点 ...

  2. 【mybatis】mybatis访问报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 或者 feign被调用方使用的mybatis总报空指针异常java.lang.NullPointerException,而变量都没有问题的情况

    mybatis访问报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 需要检查的步骤: ...

  3. Java设计模式菜鸟系列(十七)桥接模式建模与实现

    转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40008711 桥接模式(Bridge): 把事物和其详细实现分开(抽象化与实现化解耦),使 ...

  4. cas 获取session中的用户信息

    <%Object object =request.getSession().getAttribute("_const_cas_assertion_");Assertion a ...

  5. 一次SQL查询语句的优化

    1.项目中之前的"我关注的拍品列表"需要添加筛选功能,因为目前显示的关注的拍品太多没有进行分类,用户体验差. 2.添加筛选条件之后,可以筛选出“未开始”“进行中”“已结束”三种情况 ...

  6. 显示所有环境变量:env 或者 printenv

    显示所有环境变量:env 或者 printenv

  7. OpenCV使用FLANN进行特征点匹配

    使用FLANN进行特征点匹配 目标 在本教程中我们将涉及以下内容: 使用 FlannBasedMatcher 接口以及函数 FLANN 实现快速高效匹配( 快速最近邻逼近搜索函数库(Fast Appr ...

  8. Python学习(九)IO 编程 —— 文件读写

    Python 文件读写 Python内置了读写文件的函数,用法和C是兼容的.本节介绍内容大致有:文件的打开/关闭.文件对象.文件的读写等. 本章节仅示例介绍 TXT 类型文档的读写,也就是最基础的文件 ...

  9. Hibernate查询语言

    HQL(Hibernate Query Language)查询语言是完全面向对象的查询语言,它提供了更加面向对象的封装,它可以理解如多态.继承和关联的概念.HQL看上去和SQL语句相似,但它却提供了更 ...

  10. Nginx发展现状及未来特性

    Nginx ("engine x")是一个高性能的HTTP和反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器,其特点是占用内存少,并发能力强.到目前完为止,Ngi ...