ThinkPHP(TP)是一个基于PHP的轻量级Web开发框架
以下是配置主从数据库的示例:
return [
// 默认数据库配置
'db_config' => [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'test',
// 用户名
'username' => 'root',
// 密码
'password' => 'password',
// 编码
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'tp_',
],
// 主数据库配置
'db_master' => [
'hostname' => '127.0.0.1',
'username' => 'root',
'password' => 'password',
],
// 从数据库配置
'db_slave' => [
'hostname' => '127.0.0.2',
'username' => 'slave_user',
'password' => 'slave_password',
],
];
<?php
namespace app\common;
use think\Db as ThinkDb;
class Db extends ThinkDb
{
public static function connect($config = [], $name = false)
{
// 判断是否读操作
if (self::$readMaster === false && self::getLastSql() !== '') {
$sql = self::getLastSql();
if (stripos($sql, 'SELECT') === 0 || stripos($sql, 'SHOW') === 0) {
// 从数据库配置
$config = config('db_slave');
} else {
// 主数据库配置
$config = config('db_master');
}
}
return parent::connect($config, $name);
}
}
<?php
use app\common\Db;
// 查询操作,将自动使用从数据库
$data = Db::table('user')->where('id', 1)->find();
// 更新操作,将自动使用主数据库
Db::table('user')->where('id', 1)->update(['name' => 'new_name']);
通过以上配置和代码,你可以实现ThinkPHP框架的数据库主从复制功能。根据实际情况,你可能需要调整配置文件和数据库类以满足项目需求。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。