模型.md

作者: f6d80f144fcf | 来源:发表于2017-08-10 15:42 被阅读8次

多个数据库,某个数据库,某个表,字段;

分布式数据库;
切换数据库;
连接数据库;
模型实例化(模型定义);
字段;

分布式数据库

'DB_DEPLOY_TYPE'=> 1, //分布式数据库配置定义
'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_',

切换数据库

Model->db("数据库编号","数据库配置");
$this->db(1,"mysql://root:123456@localhost:3306/test")->query("查询SQL");
$this->db(1)->query("查询SQL");
$this->db(1)->table("top_user")->find();

连接数据库

三种方式:

  1. 配置文件
//数据库配置信息 'DB_TYPE' => 'mysql',
// 数据库类型 'DB_HOST' => '127.0.0.1',
// 服务器地址 'DB_NAME' => 'thinkphp', 
// 数据库名 'DB_USER' => 'root', 
// 用户名 'DB_PWD' => '123456', 
// 密码 'DB_PORT' => 3306, 
// 端口 'DB_PREFIX' => 'think_', 
// 数据库表前缀  'DB_CHARSET'=> 'utf8',
// 字符集 'DB_DEBUG' => TRUE,
// 数据库调试模式 开启后可以记录SQL日志
  1. 定义模型类
 namespace Home\Model;
 use Think\Model;
 class UserModel extends Model{ 
  protected $connection = array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '1234', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'thinkphp', 'db_charset' => 'utf8', );
 }

namespace Home\Model;
use Think\Model;
class UserModel extends Model{
  protected $connection ='mysql://root:1234@localhost:3306/thinkphp#utf8'; 
}

//数据库配置1
 'DB_CONFIG1' => array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '1234', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'thinkphp', 'db_charset'=> 'utf8', ), 
//数据库配置2
 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';

namespace Home\Model;
use Think\Model;
class UserModel extends Model{
  protected $connection = 'DB_CONFIG1'; 
}
  1. 实例化
$User = M('User','other_','mysql://root:1234@localhost/demo#utf8');

$User = M('User','other_','DB_CONFIG2');

模型实例化三种方式:

  1. 直接实例化;
$User = new \Home\Model\UserModel();
$Info = new \Admin\Model\InfoModel(); 
$New = new \Home\Model\NewModel('blog','think_',$connection); // 带参数实例化
  1. M;
    可以不定义模型类;
$User = M('User'); 
$New = M('new','think_',$connection); 
  1. D;
  $User = D('User'); 

区别:D方法实例化模型类的时候通常是实例化某个具体的模型类,如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。

  1. 实例化空模型类
    如果你仅仅是使用原生SQL查询的话,不需要使用额外的模型类.
$Model = new Model(); 

模型定义:

正确地定义模型类,可以找到要操作的数据表;

相关文章

  • [数据知识]MD3M 主数据管理能力成熟度模型

    本文介绍MD3M主数据管理能力成熟度模型MD3M 简介研究方法MD3M 模型实践验证总结 MD3M 简介 价值 M...

  • 模型.md

    多个数据库,某个数据库,某个表,字段; 分布式数据库;切换数据库;连接数据库;模型实例化(模型定义);字段; 分布...

  • 我眼中的MarkDown ??

    md到底有什么吸引你?### 简单 便捷 不用动鼠标 装逼 md就是dom模型的一变种### 譬如你写个a就代表了...

  • 盒子模型.md

    盒子模型有两种IE盒子模型和标准盒子模型。盒子由内容,内边距,外边距,边框和外边距组成。 在标准盒子模型下,整个盒...

  • Swoole的进程模型.md

    Swoole的进程模型.md 前文再续,就书接上一回,随着与Server、TCP、Protocol的邂逅,Swoo...

  • gromacs使用额外水模型

    在我们MD中我们有时候很少进行水模型的选择,很多时候我们对于不要求精确的体系使用spc水模型,对于相对要求精确的模...

  • Django使用edtor.md添加图片的支持

    Django使用edtor.md添加图片的支持 测试竟然只能在谷歌浏览器起作用。 模型 视图 编辑文章视图 上传图...

  • 【Java小工匠】消息摘要--MD算法

    1、MD算法的基的概念    MD5算法是典型的消息摘要算法,其前身有MD2、MD3和MD4算法,它由MD4、MD...

  • Android 文件MD5计算

    例子代码走起,MD5 md5sum = new MD5();md5sum.md5sum("/sdcard/xxx/...

  • MD5(MD5 消息摘要算法)

    MD5(MD5 消息摘要算法) MD5 简介 MD5 消息摘要算法(MD5 Message-Digest Algo...

网友评论

    本文标题:模型.md

    本文链接:https://www.haomeiwen.com/subject/peuhrxtx.html