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 相关文章推荐
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
PHP chmod 函数与批量修改文件目录权限
May 10 PHP
php引用返回与取消引用的详解
Jun 08 PHP
基于flush()不能按顺序输出时的解决办法
Jun 29 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
经典PHP加密解密函数Authcode()修复版代码
Apr 05 PHP
php封装的表单验证类完整实例
Oct 19 PHP
PDO::_construct讲解
Jan 27 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
PHP序列化和反序列化深度剖析实例讲解
Dec 29 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中的extract的作用分析
2008/04/09 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
python 系统调用的实例详解
2017/07/11 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
python两种注释用法的示例
2020/10/09 Python
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
荷叶圆圆教学反思
2014/02/01 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
2014最新实习证明模板
2014/10/02 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
2015年个人现实表现材料
2014/12/10 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书