我是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");
但这不起作用。如果我尝试单独连接这些从属设备,它就可以工作了。但是当我在数组中声明它时。是否有一种简单的方法可以随机调用这些从属设备?请突出显示我的代码中的错误。我在网上检查了几个链接,但他们使用函数和这个关键字进行数据库调用。
如果您需要更多信息,请告诉我们。
提前致谢。
答案 0 :(得分:0)
您应该使用array_rand
函数从数组中获取随机值。检查一下这个修改。
你忘记将数据库名称传递给连接函数。
答案 1 :(得分:0)
$slave = $slaves[array_rand($slaves)];
$con = mysqli_connect($slave['server'], $slave['user'], $slave['password'], "dbname");