当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP实现的mysql读写分离操作示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-17 19:08:15 浏览: 评论:0 

这篇文章主要介绍了PHP实现的mysql读写分离操作,简单讲述了mysql读写分离的原理,并结合实例形式给出了php针对mysql的读写sql语句操作不同数据库的相关实现技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现的mysql读写分离操作,分享给大家供大家参考,具体如下:

首先mysql主从需配置好,基本原理就是判断sql语句是否是select,是的话走master库,否则从slave查。

  1. <?php 
  2. /** 
  3. * mysql读写分离 
  4. */ 
  5. class db{ 
  6.   public function __construct($sql){ 
  7.     $chestr = strtolower(trim($sql)); 
  8.     //判断sql语句有select关键字的话,就连接读的数据库,否则就连接写数据库 
  9.     if(substr($chestr,0,6)=='select'
  10.     { 
  11.       echo 'I am using slave db..<br>'
  12.       $link = mysql_connect("192.168.20.201:3306""open""123456"or die("Could not connect: " . mysql_error()); 
  13.       mysql_select_db("hadoop"); 
  14.       $result = mysql_query($sql); 
  15.       while($row = mysql_fetch_array($result,MYSQL_ASSOC)){ 
  16.         $data[]=$row
  17.       } 
  18.       //print_r($data);exit; 
  19.       echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'<br>'
  20.     }else
  21.       echo 'I am using master db..<br>'
  22.       $link = mysql_connect("192.168.20.195:3306","open","123456"or die("Could not connect: " . mysql_error()); 
  23.       mysql_select_db("hadoop"); 
  24.       $result = mysql_query($sql); 
  25.       //echo @mysql_affected_rows($result); 
  26.       echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'<br>'
  27.     } 
  28.   } 
  29. $master = new db("INSERT INTO user (id,name)VALUES (NULL,'100')"); 
  30. $slave = new db("SELECT * from `user`"); 

结果:

  1. I am using master db.. 
  2.  
  3. 192.168.20.195 via TCP/IP5.1.73-log10mysqlnd 5.0.8-dev - 20102224 - $Id: 731e5b87ba42146a687c29995d2dfd8b4e40b325 $ 
  4. I am using slave db.. 
  5. 192.168.20.201 via TCP/IP5.1.73-log10mysqlnd 5.0.8-dev - 20102224 - $Id: 731e5b87ba42146a687c29995d2dfd8b4e40b325 $

Tags: mysql读写分离

分享到: