Maison  >  Article  >  développement back-end  >  Opération de séparation lecture-écriture Mysql implémentée par PHP

Opération de séparation lecture-écriture Mysql implémentée par PHP

不言
不言original
2018-06-01 11:02:081366parcourir

Cet article présente principalement l'opération de séparation de lecture et d'écriture mysql implémentée par PHP. Il décrit brièvement le principe de la séparation de lecture et d'écriture mysql et le combine avec des exemples pour fournir des techniques d'implémentation pertinentes pour les instructions SQL de lecture et d'écriture de PHP pour mysql. exploiter différentes bases de données., Les amis dans le besoin peuvent se référer à

L'exemple dans cet article décrit l'opération de séparation de lecture et d'écriture mysql implémentée par PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Tout d'abord, le maître et l'esclave MySQL doivent être configurés. Le principe de base est de déterminer si l'instruction SQL est sélectionnée. Si tel est le cas, accédez à. la bibliothèque maître, sinon vérifiez depuis l'esclave

<?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`");

Résultat :

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 $

Recommandations associées :

Base de données MySQL implémentée par la fonction de sauvegarde du framework ThinkPHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn