天天看點

php如何實作mysql讀寫分離_php實作mysql讀寫分離代碼

在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);

}