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 相关文章推荐
php在线打包程序源码
Jul 27 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
Zend的Registry机制的使用说明
May 02 PHP
如何使用php输出时间格式
Aug 31 PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
PHP获取文件扩展名的4种方法
Nov 24 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 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
基于文本的访客签到簿
2006/10/09 PHP
PHP 基本语法格式
2009/12/15 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
python 编写简单网页服务器的实例
2018/06/01 Python
使用python3构建文件传输的方法
2019/02/13 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
捷克时尚网上商店:OTTO
2018/03/15 全球购物
架构师岗位职责
2013/11/18 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
委托书的写法
2014/09/16 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
自我评价优缺点范文
2015/03/11 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
导游词之西安骊山
2019/12/03 职场文书