如何将随机数据库用户代码与CodeIgniter数据库连接代码整合实现随机连接
如何在CodeIgniter中随机使用不同用户名连接数据库
嘿,这事儿处理起来很直接,咱们只需要把随机选取数据库用户的逻辑嵌入到CodeIgniter的数据库配置数组里就行。具体步骤如下:
首先,咱们先定义好可用的数据库用户数组,然后用array_rand()随机挑一个用户,最后把这个随机选中的用户赋值给配置里的username字段。
整合后的完整代码如下:
// 定义可用的数据库用户数组 $db_users = array('user1','user2', 'user3','user4','user5'); // 随机选取一个用户 $db_user = $db_users[array_rand($db_users)]; $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => $db_user, // 这里使用随机选中的用户 'password' => 'mydbpsw', // 注意:如果不同用户密码不同,你需要对应调整逻辑,比如用关联数组存储用户和密码 'database' => 'mydb', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
补充说明
- 如果你的不同数据库用户对应的密码不一样,那得把用户数组改成关联数组,比如:
然后把配置里的$db_users = array( 'user1' => 'pass1', 'user2' => 'pass2', 'user3' => 'pass3' ); // 随机取键(用户名) $selected_user = array_rand($db_users); // 对应的密码 $selected_pass = $db_users[$selected_user];username设为$selected_user,password设为$selected_pass就行。 - 确保你定义的所有数据库用户都拥有目标数据库的访问权限,不然随机到没有权限的用户会导致连接失败。
内容的提问来源于stack exchange,提问作者John Hatcher
相关产品推荐
相关产品推荐

