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版(3)
Oct 09 PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
Oct 29 PHP
解析php中的escape函数
Jun 29 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
PHP独立Session数据库存储操作类分享
Jun 11 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
PHP通过文件路径获取文件名的实例代码
Oct 14 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 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/10/09 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
详解express + mock让前后台并行开发
2018/06/06 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
python中 * 的用法详解
2019/07/10 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
Python jieba库分词模式实例用法
2021/01/13 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
银行员工辞职信范文
2014/01/20 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
我的中国心演讲稿
2014/09/04 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
追悼会答谢词范文
2015/09/29 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
如何用Navicat操作MySQL
2021/05/12 MySQL