>  기사  >  백엔드 개발  >  PHP로 구현된 MySQL 읽기-쓰기 분리 작업

PHP로 구현된 MySQL 읽기-쓰기 분리 작업

不言
不言원래의
2018-06-01 11:02:081366검색

이 글에서는 주로 PHP가 구현하는 mysql 읽기 및 쓰기 분리 작업을 소개합니다. mysql 읽기 및 쓰기 분리 원리를 간략하게 설명하고 이를 예제와 결합하여 mysql이 다양한 작업을 수행하는 PHP의 읽기 및 쓰기 sql 문에 대한 관련 구현 기술을 제공합니다. 데이터베이스가 필요합니다. 친구는

를 참조할 수 있습니다. 이 문서에서는 PHP로 구현되는 mysql 읽기-쓰기 분리 작업을 설명합니다. 참고를 위해 모든 사람과 공유합니다. 세부 사항은 다음과 같습니다.

먼저 mysql 마스터와 슬레이브를 구성해야 합니다. 기본 원칙은 sql 문이 선택되었는지 확인하는 것입니다. 그렇지 않으면 슬레이브에서 확인하세요

<?php
/**
* mysql读写分离
*/
class db{
  public function __construct($sql){
    $chestr = strtolower(trim($sql));
    //判断sql语句有select关键字的话,就连接读的数据库,否则就连接写数据库
    if(substr($chestr,0,6)==&#39;select&#39;)
    {
      echo &#39;I am using slave db..<br>&#39;;
      $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().&#39;<br>&#39;;
    }else{
      echo &#39;I am using master db..<br>&#39;;
      $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().&#39;<br>&#39;;
    }
  }
}
$master = new db("INSERT INTO user (id,name)VALUES (NULL,&#39;100&#39;)");
$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 $

관련 권장 사항:

ThinkPHP 프레임워크에 의해 구현된 MySQL 데이터베이스 백업 기능

위 내용은 PHP로 구현된 MySQL 읽기-쓰기 분리 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.