PHP实现的mysql读写分离操作示例


Posted in PHP onMay 22, 2018

本文实例讲述了PHP实现的mysql读写分离操作。分享给大家供大家参考,具体如下:

首先mysql主从需配置好,基本原理就是判断sql语句是否是select,是的话走master库,否则从slave查

<?php
/**
* mysql读写分离
*/
class db{
  public function __construct($sql){
    $chestr = strtolower(trim($sql));
    //判断sql语句有select关键字的话,就连接读的数据库,否则就连接写数据库
    if(substr($chestr,0,6)=='select')
    {
      echo 'I am using slave db..<br>';
      $link = mysql_connect("192.168.20.201:3306", "open", "123456") or die("Could not connect: " . mysql_error());
      mysql_select_db("hadoop");
      $result = mysql_query($sql);
      while($row = mysql_fetch_array($result,MYSQL_ASSOC)){
        $data[]=$row;
      }
      //print_r($data);exit;
      echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'<br>';
    }else{
      echo 'I am using master db..<br>';
      $link = mysql_connect("192.168.20.195:3306","open","123456") or die("Could not connect: " . mysql_error());
      mysql_select_db("hadoop");
      $result = mysql_query($sql);
      //echo @mysql_affected_rows($result);
      echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'<br>';
    }
  }
}
$master = new db("INSERT INTO user (id,name)VALUES (NULL,'100')");
$slave = new db("SELECT * from `user`");

结果:

I am using master db..
192.168.20.195 via TCP/IP5.1.73-log10mysqlnd 5.0.8-dev - 20102224 - $Id: 731e5b87ba42146a687c29995d2dfd8b4e40b325 $
I am using slave db..
192.168.20.201 via TCP/IP5.1.73-log10mysqlnd 5.0.8-dev - 20102224 - $Id: 731e5b87ba42146a687c29995d2dfd8b4e40b325 $

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
深入array multisort排序原理的详解
Jun 18 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
PHP用FTP类上传文件视频等的简单实现方法
Sep 23 PHP
PHP静态延迟绑定和普通静态效率的对比
Oct 20 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
PHP7新功能总结
Apr 14 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 #PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 #PHP
PhpStorm本地断点调试的方法步骤
May 21 #PHP
PHP自动识别当前使用移动终端
May 21 #PHP
PHP连接MySQL数据库并以json格式输出
May 21 #PHP
PHP 访问数据库配置通用方法(json)
May 20 #PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 #PHP
You might like
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python实现redis三种cas事务操作
2017/12/19 Python
Python程序暂停的正常处理方法
2019/11/07 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
Python原始套接字编程实例解析
2020/01/29 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
美食节目策划方案
2014/05/31 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
初二英语教学反思
2016/02/15 职场文书
合同补充协议书
2016/03/24 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL