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 Google的translate API代码
Dec 10 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
php实现等比例压缩图片
Jul 26 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
CI框架附属类用法分析
Dec 26 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 PHP
php生成短网址/短链接原理和用法实例分析
May 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中看实例学正则表达式
2006/12/25 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
php时间函数用法分析
2016/05/28 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
Python深入学习之闭包
2014/08/31 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
python GUI计算器的实现
2020/10/09 Python
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
初中女生自我鉴定
2013/12/19 职场文书
幼儿园家长评语
2014/02/10 职场文书
纠纷协议书
2014/04/16 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
python实现的web监控系统
2021/04/27 Python