在数组中声明多个数据库主机并进行数据库调用

时间:2013-08-01 07:17:39

标签: php mysql database scripting mysqli

我是PHP的新手。我想要实现的是在数组中声明多个数据库主机。如下所述:

  $slaves=array(
        array(  //Slave 1
                'name' => 'slave1',
                'server' => '10.10.1.10',
                'user' => 'user1',
                'password' => 'p@ssuser1'
                'port' => '3306'),
        array(  //Slave 2
                'name' => 'slave2',
                'server' => '10.10.1.11',
                'user' => 'user2',
                'password' => 'p@ssuser2'
                'port' => '3306'),
        )

一旦完成,我想对这些从设备进行随机调用,即每个读取请求都应该从其中一个从设备获得。

  $idx = time() % count($slaves);
$slave = $slaves[$idx];
$con = mysqli_connect($slave['server'], $slave['user'], $slave['password'], "dbname"); 

但这不起作用。如果我尝试单独连接这些从属设备,它就可以工作了。但是当我在数组中声明它时。是否有一种简单的方法可以随机调用这些从属设备?请突出显示我的代码中的错误。我在网上检查了几个链接,但他们使用函数和这个关键字进行数据库调用。

如果您需要更多信息,请告诉我们。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您应该使用array_rand函数从数组中获取随机值。检查一下这个修改。

你忘记将数据库名称传递给连接函数。

答案 1 :(得分:0)

$slave = $slaves[array_rand($slaves)];
$con = mysqli_connect($slave['server'], $slave['user'], $slave['password'], "dbname");