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. Java ClassLoader加载机制理解 实际例子

    针对 Java ClassLoader加载机制理解, 做了个如何自定制简单的ClassLoader,并成功加载指定的类. 不废话,直接上代码. package com.chq.study.cl; im ...

  2. Workflow:采用坐标变换(移动和旋转)画箭头

    背景 流程设计器的连线部分需要画一个箭头代表连接的方向,下图是期望的效果: 刚开始我准备采用三角函数(sin和cos)来计算三角的坐标,实现的过程真不爽(有兴趣的朋友可以试试),就在完工的时候,突然想 ...

  3. android——根据MVC框架设计的结构

  4. 一个 forceLayout() 和 requestLayout() 的测试

    两个view: 一个是系统默认的FrameLayout,  A 一个是自己自定义的MyView extends View,重载了onMeasure函数(): B @Override protected ...

  5. ArrayList的使用和List<T>的比较

    使用非泛型集合类的限制可以通过编写一小段程序来演示,该程序利用 .NET Framework 基类库中的 ArrayList 集合类.ArrayList 是一个使用起来非常方便的集合类,无需进行修改即 ...

  6. 项目笔记:创建XML文件和导出功能

    一.创建XML文件: 要生成的XML结构: //创建文件夹 private void createFilePah(String path){ File file = new File(path); i ...

  7. IE、火狐导入收藏夹乱码解决方案

    IE收藏夹导入Firefox书签后出现乱码的原因在于两个浏览器的收藏夹的html文件的编码方式不同,Firefox使用的是UTF-8编码,而IE是ASCII编码.故两者的收藏夹文件互相导入的时候会出现 ...

  8. HDFS API操作实践

    本文提供几个简单的实例,来说明如何使用hadoop的java API针对HDFS进行文件上传.创建.重命名.删除操作 本文地址:http://www.cnblogs.com/archimedes/p/ ...

  9. Windows-设置系统服务不开机启动

    设置为手动,则开机不会自动启动了

  10. FrameWork数据权限浅析3之基于角色的配置表实现行级数据安全

    带着上一次笔记的疑问和些许欢喜来到了混混沌沌的下午,程序员的脑子一直在不停的思索着,而多思考总是没错的,盼望着盼望着事情就有了转机,现在我们就来说一说基于角色级别的中间表机制实现行级数据安全. 由于本 ...