在mysql做了主從同步之後,php就需要進行讀寫分離操作了。每次判斷sql語句起始是否為select來區分去連接配接到哪台資料庫伺服器。查詢分到從庫,增加、删除、修改操作都分到主庫中去操作。
參考代碼://截取SQL語句字元串
$str = strtolower(trim(substr($sql,0,6)));
//如果是select,就連接配接slave從伺服器
if($str == 'select'){
$slave_server='192.168.1.100:3306';
$dsn="mysql:host=$slave_server;dbname=test";
$user='root';
$pass='root';
$dbh=new PDO($dsn, $user, $pass);
$res=$dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}else{
//如果不是select,就連接配接master主伺服器
$master_server='192.168.1.101:3306';
$dsn="mysql:host=$master_server;dbname=test";
$user='root';
$pass='123456';
$dbh=new PDO($dsn, $user, $pass);
$res=$dbh->exec($sql);
}