现在可以用php查询一个固定的数据库,但需要用php查询多个数据库,比如把每个数据库的信息可以写在一个配置文件里,只要在这个配置文件里增加数据库的信息,就可以查询到这些数据库了。
比如可以在配置文件里增加数据库信息,
$configs['db_info']['blog'][0] = array(
'db_host' => '192.168.0.1',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][1] = array(
'db_host' => '192.168.0.2',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);
$configs['db_info']['blog'][2] = array(
'db_host' => '192.168.0.2',
'db_name' => 'blog',
'db_user' => 'root',
'db_pass' => '',
);在网上找到了这个例子,但没看懂。http://xcy.17cha8.cn/read.php/707.htm

解决方案 »

  1.   

    你需要用到哪个数据库就连接哪个数据库啊
    或者循环连接数据库
    foreach($configs['db_info']['blog'] as $v)
    {
    $conn=mysql_pconnect($v['db_host'],$v['db_user'],$v['db_pass']);
    mysql_select_db($v['db_name'],$conn);
    //执行SQL语句
    mysql_query("...");
    }
      

  2.   

    我试了下,会出现错误:
    $configs[0] = array(
    'db_host' => '59.64.142.192',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
    );
    foreach($configs as $v)
    {
    $conn_string = "host=$v['db_host'] dbname=uvm user=root password= port=5432";//这一句会出现错误:syntax error, unexpected T_ENCAPSED_AND_WHITESPACE
    $dbconn = pg_connect($conn_string) or die("Could not connect");
    //执行SQL查询
    $query="SELECT * FROM table;
    $result=pg_query($dbconn,$query);
    ……
    }
      

  3.   

    sql语句的表名加上数据,例如 Database.table
      

  4.   

    之前是$conn_string = "host=ip地址 dbname=uvm user=root password= port=5432";这样是可以连接数据库的
      

  5.   

    是说这一句$query="SELECT * FROM table;的表明要加上数据库名吗