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中的错误处理、异常处理机制分析
May 07 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
php ios推送(代码)
Jul 01 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
php实现图片上传并利用ImageMagick生成缩略图
Mar 14 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
Apr 03 PHP
php获取是星期几的的一些常用姿势
Dec 15 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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
服务器端解压缩zip的脚本
2006/12/22 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
Js获取事件对象代码
2010/08/05 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
jquery获取radio值实例
2014/10/16 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
python3如何将docx转换成pdf文件
2018/03/23 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
python函数超时自动退出的实操方法
2020/12/28 Python
python编程的核心知识点总结
2021/02/08 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
金讯Java笔试题目
2013/06/18 面试题
《哪吒闹海》教学反思
2014/02/28 职场文书
经管应届生求职信范文
2014/05/18 职场文书
村党支部书记承诺书
2014/05/29 职场文书
2014年维修工作总结
2014/11/22 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
小学毕业教师寄语
2019/06/21 职场文书
深入理解python协程
2021/06/15 Python