从ThinkPHP迁移项目 - 数据库

优质
小牛编辑
127浏览
2023-12-01

Github : ThinkORM - 从ThinkPHP5.1独立出来的数据库ORM类库

安装

  1. composer require topthink/think-orm

创建数据库配置

修改 Conf/Config.php 文件,在userConf方法中添加如下配置,这里仅列出连接mysql必须的配置项,完整配置项可以参考think-orm类库目录下的config.php文件

  1. private function userConf()
  2. {
  3. return array(
  4. 'database' => [
  5. // 数据库类型
  6. 'type' => 'mysql',
  7. // 服务器地址
  8. 'hostname' => '127.0.0.1',
  9. // 数据库名
  10. 'database' => 'swoole',
  11. // 用户名
  12. 'username' => 'root',
  13. // 密码
  14. 'password' => '123456',
  15. // 端口
  16. 'hostport' => '3306',
  17. // 数据库表前缀
  18. 'prefix' => 'db_',
  19. // 是否需要断线重连
  20. 'break_reconnect' => true,
  21. ]
  22. );
  23. }

全局初始化DB类

Conf/Event.php的框架初始化完成事件中初始化数据库类配置,初始化完成后,即可在全局任意位置使用Db类以及使用模型类进行操作

  1. function frameInitialized()
  2. {
  3. // 获得数据库配置
  4. $dbConf = Config::getInstance()->getConf('database');
  5. // 全局初始化
  6. Db::setConfig($dbConf);
  7. }

普通查询示例

ThinkPHP的使用方法一样,可以直接使用Db类进行数据库查询,支持链式操作

  1. Db::table('user')
  2. ->data(['name'=>'thinkphp','email'=>'thinkphp@qq.com'])
  3. ->insert();
  4. Db::table('user')->find();
  5. Db::table('user')
  6. ->where('id','>',10)
  7. ->order('id','desc')
  8. ->limit(10)
  9. ->select();
  10. Db::table('user')
  11. ->where('id',10)
  12. ->update(['name'=>'test']);
  13. Db::table('user')
  14. ->where('id',10)
  15. ->delete();

模型查询示例

简单的查询模型无需改动任何代码即可直接应用在easySwoole中,只需要将原项目的模型文件复制过来,批量修改命名空间,对应为easySwoole的命名空间即可

同样的我们需要新建一个模型才能进行查询,模型直接继承自thinkModel类,和ThinkPHP的定义方法是一样的

  1. <?php
  2. namespace AppModel;
  3. use thinkModel;
  4. class Member extends Model
  5. {
  6. protected $name = 'member';
  7. }

定义完模型类后,即可进行模型的查询,同样也支持关联查询的定义

  1. use AppModelMember;
  2. function index(){
  3. $member = Member::get(1);
  4. $member->username = 'test';
  5. $member->save();
  6. $this->response()->write('Ok');
  7. }

更多模型用法可以参考5.1完全开发手册的模型章节