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 相关文章推荐
phpmyadmin操作流程
Oct 09 PHP
PHPMyadmin 配置文件详解(配置)
Dec 03 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
微信开发之php表单微信中自动提交两次问题解决办法
Jan 08 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 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
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
python自动化测试之如何解析excel文件
2019/06/27 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
宝信软件JAVA工程师面试经历
2012/08/19 面试题
医院实习接收函
2014/01/12 职场文书
美术毕业生求职信
2014/02/25 职场文书
财务审计整改报告
2014/11/06 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
介绍信范文
2015/01/31 职场文书
计生个人工作总结
2015/02/28 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
旗帜观后感
2015/06/08 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
Python语言内置数据类型
2022/02/24 Python
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技