ホームページ >バックエンド開発 >PHPの問題 >PHP で読み取りと書き込みを分離する方法

PHP で読み取りと書き込みを分離する方法

王林
王林オリジナル
2019-10-15 17:55:263165ブラウズ

PHP で読み取りと書き込みを分離する方法

MySQL で読み取りと書き込みを分離するには、いくつかの方法があります。

1. MySQL ミドルウェア

2. MySQL ドライバー層

3. コード制御

ここではミドルウェアとドライバー層の詳細には触れませんが、その制御方法を簡単に紹介します。 PHP コードを介して MySQL は読み取りと書き込みを分離します。

SQL ステートメントの「読み取り」が「SELECT」であり、「書き込み」が「INSERT」であることは誰もが知っているので、最初に考えるべきことは、文字列インターセプト substr() 関数です。

まず、substr() 関数を使用して、SQL ステートメントの最初の 6 文字が「SELECT」であるかどうかを取得します。そうであれば、処理のために読み取りサーバーに接続します。そうでない場合は、書き込みサーバーに接続します。処理用のサーバー。

コード例:

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

推奨チュートリアル: PHP ビデオ チュートリアル

以上がPHP で読み取りと書き込みを分離する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。