php 代码层读写分离,PHP代码实现MySQL读写分离

关于MySQL的读写分离有几种方法:中间件,Mysql驱动层,代码控制

关于中间件和Mysql驱动层实现Mysql读写分离的方法,今天暂不做研究,

这里主要写一点简单的代码来实现由PHP代码控制MySQL的读写分离。

准备工作:两个Mysql服务器,已经配置好主从,如果没配置过Mysql主从,请参考我上一篇博文:《mysql实现主从复制》

主服务器192.168.1.101;

从服务器:192.168.1.105;

思路就是封装一个类,用于对数据库的操作,

这里只是写出一个简单的demo,用于理解php控制读写分离的思想,仅作抛砖引玉只用。

b4e52a4a1ab0a17dcb74d970787af675.gifclass Db

{

function __construct($sql)

{

$querystr = trim($sql);

$querystr = substr($sql,0,6);        //如果是查询语句就连接从服务器

if($querystr == 'select')

{

$conn = mysql_connect('192.168.1.105:3306','root','111111');

mysql_select_db('test');

mysql_query('set names utf8');

$data = array();

$res = mysql_query($sql);            while ($row = mysql_fetch_assoc($res)) {

$data[] = $row;

}

print_r($data);

echo '

';

echo mysql_get_host_info($conn).'||'.mysql_get_server_info($conn).'||'.mysql_get_proto_info($conn);

}        //如果不是查询语句就连接主服务器

else

{

$conn = mysql_connect('192.168.1.101:3306','root','111111');

mysql_select_db('test');

mysql_query('set names utf8');

mysql_query($sql);

echo mysql_affected_rows();

echo '

';

echo mysql_get_host_info($conn).'||'.mysql_get_server_info($conn).'||'.mysql_get_proto_info($conn);

}

}

}

$sql1 = "select * from a";

$sql2 = "insert into a (name) values ('Alice')";

$sql3 = "delete from a where id=5";

$sql4 = "update a set name='Jerry' where id=4";//$model1 = new Db($sql1);//$model2 = new Db($sql2);//$model3 = new Db($sql3);$model4 = new Db($sql4);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值