Maison  >  Article  >  développement back-end  >  Contenu connexe de la séparation lecture-écriture MySQL implémentée par PHP

Contenu connexe de la séparation lecture-écriture MySQL implémentée par PHP

jacklove
jackloveoriginal
2018-06-22 17:07:431407parcourir

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 à

Cet article décrit l'opération de séparation mysql lecture-écriture 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 principale, 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 :

J'utilise master db..
192.168.20.195 via TCP/IP5.1.73-log10mysqlnd 5.0.8 -dev - 20102224 - $Id : 731e5b87ba42146a687c29995d2dfd8b4e40b325 $
J'utilise une base de données esclave..
192.16 8.20.201 via TCP/IP5.1.73-log10mysqlnd 5.0 .8-dev - 20102224 - $Id: 731e5b87ba42146a687c29995d2dfd8b4e40b325 $

Articles qui pourraient vous intéresser :

Comment compresser plusieurs fichiers en zip formatez-les et téléchargez-les localement en PHP

Exemple de la façon dont PHP parcourt les dossiers de manière récursive pour supprimer les commentaires et compresser le code source php

Exemple d'implémentation simple d'un modèle de fabrique PHP

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