Heim  >  Artikel  >  Backend-Entwicklung  >  So erreichen Sie die Trennung von Lesen und Schreiben in PHP

So erreichen Sie die Trennung von Lesen und Schreiben in PHP

王林
王林Original
2019-10-15 17:55:263120Durchsuche

So erreichen Sie die Trennung von Lesen und Schreiben in PHP

Es gibt mehrere Möglichkeiten, Lesen und Schreiben in MySQL zu trennen

1. MySQL-Middleware

2. MySQL-Treiberschicht

3. Codesteuerung

Ich werde hier nicht näher auf die Middleware- und Treiberschicht eingehen durch PHP-Code. MySQL liest und schreibt getrennt.

Wir alle wissen, dass „Lesen“ in SQL-Anweisungen „SELECT“ und „Schreiben“ „INSERT“ ist. Daher sollten wir als Erstes an die Funktion zum Abfangen von Zeichenfolgen substr() denken.

Zuerst verwenden wir die Funktion substr(), um zu ermitteln, ob die ersten 6 Zeichen der SQL-Anweisung „SELECT“ sind. Wenn ja, stellen wir eine Verbindung zum Leseserver her Schreibserver zur Verarbeitung.

Beispielcode:

$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);
}

Empfohlenes Tutorial: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo erreichen Sie die Trennung von Lesen und Schreiben in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn