Maison >développement back-end >Problème PHP >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!