Mysql 讀寫分離 Demo -- PHP版

備注:
Mysql 主庫 :192.168.157.88
Mysql 從庫 :192.168.157.89

<?PHP  
/** 
* mysql讀寫分離 
*/  
class db   
{   
    //定義鏈接
    public $host = array(
                'read' =>array(
                        'host'=>'192.168.157.89:3306',
                        'username' => 'root',
                        'password' => 'root'
                ),
                'write' =>array(
                        'host'=>'192.168.157.89:3306',
                        'username' => 'root',
                        'password' => 'root'
                )
        );
    public function __construct($sql)   
    {   
        $chestr = strtolower(trim($sql));  
        
        //根據(jù) sql 判斷鏈接庫  
        if(substr($chestr,0,6)=='select')   
        {   
       
            echo 'I am using select db..<br>';  
            $rand = rand(0,1);
            $middleArr = array('read','write');//讀庫分流
            
            $link = mysql_connect($this->host[$middleArr[$rand]]['host'], $this->host[$middleArr[$rand]]['username'], $this->host[$middleArr[$rand]]['password']) or die("Could not connect: " . mysql_error());   
            mysql_select_db("nemo");   
            $result = mysql_query($sql);   
            while ($row = mysql_fetch_array($result, MYSQL_NUM))   
            {   
                printf("%s %s", $row[0],$row[1]);
                echo "<br/>";
            }   
            echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'<br>';      
        }   
        else  
        {   
            echo 'I am using insert db..<br>';  
            
            $link = mysql_connect($this->host['write']['host'], $this->host['write']['username'], $this->host['write']['password']) or die("Could not connect: " . mysql_error());   
            mysql_select_db("nemo");   
            $result = mysql_query($sql);   
            //echo $sql;
            //echo @mysql_affected_rows($result);   
            //echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'<br>';       
        }   
            
    }   
}   
$arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
foreach($arr as $k=>$v){
    //echo $v;
    $d = new db(" INSERT INTO test values('nemo{$v}','nemowei{$v}') ");  
}
 

$d2 = new db("SELECT * from `test`");  

測試結(jié)果

Paste_Image.png
Paste_Image.png
Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容