Maison >développement back-end >Problème PHP >Comment réaliser la séparation de la lecture et de l'écriture en PHP

Comment réaliser la séparation de la lecture et de l'écriture en PHP

王林
王林original
2019-10-15 17:55:263142parcourir

Comment réaliser la séparation de la lecture et de l'écriture en PHP

Il existe plusieurs façons de séparer la lecture et l'écriture dans MySQL

1. Couche de pilote MySQL

3. Contrôle du code

Je n'entrerai pas ici dans les détails de la couche middleware et du pilote. via le code PHP, MySQL lit et écrit séparément. Nous savons tous que "lire" dans les instructions SQL est "SELECT" et "écrire" est "INSERT", donc la première chose à laquelle nous devrions penser est la fonction substr() d'interception de chaîne.

Tout d'abord, nous utilisons la fonction substr() pour savoir si les 6 premiers caractères de l'instruction SQL sont "SELECT". Si c'est le cas, nous nous connectons au serveur de lecture pour le traitement. Sinon, nous nous connectons au serveur de lecture. serveur d'écriture pour le traitement.

Exemple de code :

$querystr = strtolower(trim(substr($sql,0,6)));    //截取SQL语句字符串

//如果是select,就连接slave(从)服务器
if($querystr == 'select')
{
  $slave_server='192.168.80.3::3306';
  $dsn="mysql:host=$slave_server;dbname=3d";
  $user='root';
  $pass='root';
  $dbh=new PDO($dsn, $user, $pass);
  $res=$dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}
//如果不是select,就连接master(主)服务器
else
{
  $master_server='192.168.33.22::3306';
  $dsn="mysql:host=$master_server;dbname=3dprintsys";
  $user='root';
  $pass='123456';
  $dbh=new PDO($dsn, $user, $pass);
  $res=$dbh->exec($sql);
}

Tutoriel recommandé : Tutoriel vidéo 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