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 相关文章推荐
mysql5写入和读出乱码解决
Nov 25 PHP
redis 队列操作的例子(php)
Apr 12 PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 PHP
PHP安装memcached扩展笔记
May 28 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
PHP的PDO事务与自动提交
Jan 24 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
php中try catch捕获异常实例详解
Aug 06 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
php&amp;java(一)
2006/10/09 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
Javascript中Eval函数的使用
2010/03/23 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
python设置检查点简单实现代码
2014/07/01 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
django框架创建应用操作示例
2019/09/26 Python
python绘制动态曲线教程
2020/02/24 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
汇源肾宝广告词
2014/03/20 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL