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();
方法六有一个特别之处在于,可以在某一事务中获取更新但是尚未提交事务的更新数据。
注意:如果在事务中获取数据,上述的第三种方法是没有办法获取事务提交前的数据更新结果的。
推荐文章: