zoukankan      html  css  js  c++  java
  • PHP代码实现MySQL读写分离

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

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

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

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

           主服务器192.168.1.101;  

           从服务器:192.168.1.105;

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

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

    class 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 '<br/>';
                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 '<br/>';
                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);
  • 相关阅读:
    3、spring注解注入
    2、spring注入のArrayList数组对象注入方式
    1、基本知识
    1、log4j的配置与使用
    3、在Eclipse中使用JUnit4进行单元测试(高级篇)
    2、在Eclipse中使用JUnit4进行单元测试(中级篇)
    1、JUnit4简介
    使用BroadcastReceiver实现系统对手机电量进行提示
    使用BroadcastReceiver监听系统接收的短信
    使用BroadcastReceiver实现开机自动运行的Service
  • 原文地址:https://www.cnblogs.com/superfat/p/5267479.html
Copyright © 2011-2022 走看看