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 중국어 웹사이트의 기타 관련 기사를 참조하세요!