65 模型层thinkphp看书总结
来源:互联网 发布:ubuntu os update 编辑:程序博客网 时间:2024/05/16 11:25
1.关闭字段缓存
‘DB_FIELDS_CACHE’ => false
2.获取字段信息 主键
$pk = $Model->getPk()
$fields = $User -> getDbfields ();
3.模型层可以手动定义数据表字段名称 避免IO加载开销
protected fields = array (
'id', 'username', 'passwrod', ' _pk' =>'id', '_autoinc' =>true
);
4.跨库操作
protected 'dbName' = ' info';
protected '_tablePrefix' = '_other';
5.切换数据库
$this->db(1,"mysql://root:123456@localhost:3306/test")->query("查询SQL");
$this->db(1)->query("查询SQL");
6.分布式数据库
- return array(
- //分布式数据库配置定义
- 'DB_TYPE' => 'mysql', //分布式数据库类型必须相同
- 'DB_HOST' => '192.168.0.1,192.168.0.2',
- 'DB_NAME' => 'thinkphp', //如果相同可以不用定义多个
- 'DB_USER' => 'user1,user2',
- 'DB_PWD' => 'pwd1,pwd2',
- 'DB_PORT' => '3306',
- 'DB_PREFIX' => 'think_',
- //其他配置参数
- // ...
7.读写分离
'DB_RW_SEPARATE'=>true,
8.非法html代码可以使用htmlspecialchars进行编码,以防止用户提交的html代码在展示时被执行
$_POST['title'] = htmlspecialchars($_POST['title']);
9.查询锁定
$list = $User->lock(true)->where('status=1')->order('create_time')->limit(10)->select();
10.字段排除
$Model->field('create_time,read_count,comment_count',true);
11.事物支持
- // 在User模型中启动事务
- $User->startTrans();
- // 进行相关的业务逻辑操作
- $Info = M("Info"); // 实例化Info对象
- $Info->save($User); // 保存用户信息
- if (操作成功){
- // 提交事务
- $User->commit();
- }else{
- // 事务回滚
- $User->rollback();
- }
12.高级模型功能
a.字段过滤
protected $_filter = array(
'content'=>array('function_1','function_2'),
)
b.延迟更新
$User->where('id=3')->setInc("score",10);// 用户的积分加10
c.分表
- protected $partition = array(
- 'field' => 'name',// 要分表的字段 通常数据会根据某个字段的值按照规则进行分表
- 'type' => 'md5',// 分表的规则 包括id year mod md5 函数 和首字母
- 'expr' => 'name',// 分表辅助表达式 可选 配合不同的分表规则
- 'num' => 'name',// 分表的数目 可选 实际分表的数量
- );
13.定义虚拟模型两种方式 仅用于封装业务逻辑
a. Protected $autoCheckFields = false;
b.Class UserModel { } //,不能再使用模型的CURD操作方法
0 0
- 65 模型层thinkphp看书总结
- thinkphp模型验证总结
- thinkPHP中分层模型的支持
- 看书总结
- OSI七层模型总结
- java看书总结
- ThinkPHP模型
- ThinkPHP 模型
- thinkphp模型
- ThinkPHP - 模型
- TCP/IP四层模型+部分总结
- Thinkphp 模型->关联模型
- ISO/OSI参考模型,7层网络模型总结
- ISO/OSI参考模型,7层网络模型总结
- ThinkPHP之多层MVC
- thinkphp总结
- thinkphp 总结
- thinkphp总结
- 逆矩阵实现java代码
- 优先级高优先
- HDU 3308 LCIS 线段树
- XCode7开发Mac应用系列——偏好设置面板
- 学期结束..
- 65 模型层thinkphp看书总结
- 【Android】自定义相机的实现(支持连续拍照、前后摄像头切换、连续对焦)
- 除非万不得已,别 Catch!
- 在 Java EE 组件中使用 Camel Routes
- VB读取超过2G的数据文件
- Kth Smallest Element in a BST
- 阿里云ECS(linux)修改myspl数据库密码
- SQLServer事务获取表中自增ID的方法
- 阿里云云服务器ECS使用WordPress博客平台镜像版本操作过程