怎样用PHP代码实现主从数据库的分离工作啊?

解决方案 »

  1.   

    1.<?php   
    2.       //数据库连接   
    3.    $mysqli = new mysqli("localhost","root","root","mycompany");   
    4.    if($mysqli === false){   
    5.        die("ERROR: 无法连接." . mysqli_connect_error);   
    6.    }   
    7.        //SQL查询语句   
    8.    $sql = "SELECT * FROM employees";   
    9.    if($result = $mysqli -> query($sql)){   
    10.        if($result -> num_rows > 0){   
    11.            while($row = $result -> fetch_array()){   
    12.                echo nl2br($row[0].":".$row[1]."\n");   
    13.            }   
    14.            $result -> close();   
    15.        }else{   
    16.            echo "暂时没有任何记录";   
    17.        }   
    18.    }else{   
    19.        echo "ERROR: 无法执行SQL语句:$sql. ".$mysqli->error;   
    20.    }   
    21.        //关闭连接   
    22.    $mysqli -> close();   
    23.?>  
      

  2.   

    abstract class Base {
    public static $m = null;
    public function __call($method,$args) { if(in_array(strtoupper(substr($args[0],0,6)),array('INSERT','UPDATE'))) {
    self::$m = 'master';
    }else{
    self::$m = 'slaver';
    }
    call_user_func_array(array('DMaster','connected'),$args);
    return $this;
    }
    }
    class DMaster  extends Base{ protected static $_config = array(); protected static $_linkid = array(); private static $_charset = 'utf8'; private static $_instanced = null; private static $_linker = null; private  function __construct($config =null) {
    self::$_config = (null === $config) ? self::$_config : $config;
    }
    public static function getInstanced($config = null) {
    if( null === self::$_instanced ){
    self::$_instanced = new self($config);
    }
    return self::$_instanced; }
    protected static function connected($args=array()) {//回调连接
    if(null === self::$_linker){
    self::$_config = $args;
    self::$_linker = self::connect();
    }
    //foreach($args)
    } protected static function connect() { echo self::$m;
    print_r(self::$_config);
    //self::$_linkid[] = mysql_connect(self::$_config['master'])
    }
    }
    $config = array( 'master'=>array('DBHOST'=>'localhost','DB_NAME'=>'ucar','DB_USER'=>'root','DB_PASS'=>'','DB_CHARSET'=>'utf8'),
    'slaver'=>array('DBHOST'=>'www.ucarshow.com','DB_NAME'=>'ucar','DB_USER'=>'root','DB_PASS'=>'','DB_CHARSET'=>'utf8'),
    );