Laravel 框架在数据库读写分离后强制使用主库获取数据

使用 model 强制获取主库数据

AMode::onWriteConnect()->get();

使用 DB 方法获取主库数据

  • 方法一:
    DB::table('a')->lock()->get();
  • 方法二:
    $sql = 'select * from a';
    DB::select($sql, [], false);
  • 方法三:
    #在 config/database.php 配置文件里面配置读库
    'write' => [
              'driver'    => 'mysql',
              'host'      => env('DB_WRITE_HOST', 'localhost'),
              'database'  => env('DB_DATABASE', 'forge'),
              'username'  => env('DB_USERNAME', 'forge'),
              'password'  => env('DB_PASSWORD', ''),
              'charset'   => 'utf8',
              'collation' => 'utf8_unicode_ci',
              'prefix'    => '',
              'strict'    => false,
          ],
    #手动链接主库查询
    DB::connection('write')->table('a')->get();
  • 方法四(仅供参考):
    $pdo = DB::connection()->getPdo();
    $data=DB::connection()->setPdo($pdo)->table('a')->get();
  • 方法五:
    $sql = 'select * from a';
    DB::selectFromWriteConnection($sql);
  • 方法六:
    DB::table('a_table')->useWritePdo()->get();

    方法六有一个特别之处在于,可以在某一事务中获取更新但是尚未提交事务的更新数据。

附言 1  ·  4年前

注意:如果在事务中获取数据,上述的第三种方法是没有办法获取事务提交前的数据更新结果的。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!