php - 如何将 localhost 数据库连接到另一个服务器数据库并使用 codeigniter 插入表单值?
问题描述
<?php
$active_group = 'default';
$query_builder = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'campus';
$db['default']['password'] = 'Mac@123';
$db['default']['database'] = 'campusnew';
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = TRUE;
$db['otherdb']['hostname'] = "101.51.150.42";
$db['otherdb']['username'] = 'software';
$db['otherdb']['password'] = 'Lmsnew';
$db['otherdb']['database'] = 'lmsnew';
$db['otherdb']['dbdriver'] = "mysqli";
$db['otherdb']['dbprefix'] = "";
$db['otherdb']['pconnect'] = TRUE;
$db['otherdb']['db_debug'] = FALSE;
$db['otherdb']['cache_on'] = FALSE;
$db['otherdb']['cachedir'] = "";
$db['otherdb']['char_set'] = "utf8";
$db['otherdb']['dbcollat'] = "utf8_general_ci";
$db['otherdb']['swap_pre'] = "";
$db['otherdb']['autoinit'] = TRUE;
$db['otherdb']['stricton'] = TRUE;
模型函数
public function newusersignin()
{
$DB2 = $this->load->database('otherdb', TRUE);
$firstName=$this->input->post('firstName');
$lastName=$this->input->post('lastName');
$timezone=$this->input->post('timezone');
$fullname=$firstName.' '.$lastName;
$email=$this->input->post('email');
$phone=$this->input->post('phone');
$ip_address=$this->input->ip_address();
$institutional=$this->input->post('institutional');
$pass=$firstName.mt_rand(1,100);
$username=$email;
$password=$this->hash($pass);
$insertnewuser= array('name' =>$fullname,'email'=>$email,'phone'=>$phone,'username'=>$username,'password'=>$password,'usertype'=>'ClgAdmin','create_date'=>date('y-m-d H:i:s'),'create_userID'=>1,'create_username'=>'campus','systemadminactive'=>0,'timezone'=>$timezone,'status'=>1 );
$this->db->insert('admin',$insertnewuser);
$DB2->insert('admin',$insertnewuser);
}
在这个问题中,我只是创建了两个数据库连接,一个用于localhost
,另一个用于IP
托管在不同的服务器上。现在,当我要在我的IP
服务器中插入表单数据时会发生什么,然后它会抛出一个错误,即
消息:mysqli::real_connect(): (HY000/2002): 连接被拒绝
我不知道为什么会这样?我怎么解决这个问题?请帮我。
谢谢你
解决方案
您可以检查 URL,而不是将两个数组中的所有内容加倍吗?
只需更改 localhost 以更具体地了解您还需要连接哪个数据库
$is_local = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}";
if (strpos($is_local, 'localhost') !== false) {
// LOCAL
$db_name = "db_name";
$db_user = "root";
$db_pass = "root_pass";
$db_host = "localhost";
} else {
// OTHER
$db_name = "db_name_2";
$db_user = "root_live";
$db_pass = "root_pass_live";
$db_host = "mysql.live.com";
}
那么你的连接代码从那时起总是一样的
推荐阅读
- android - 如何在导航抽屉片段中制作标签片段?
- mysql - mysql - 朋友的朋友
- php - 根据 php 中 if 条件的输出检查单选按钮
- c++ - 在 cpack 输出中包含外部库
- android - 我如何从非 mainActivity 类到其他非 mainActivity 类?
- arrays - 如何使用 AWK 在循环中正确打印关联数组?
- python - 如何使用 urllib 发送 cookie
- r - Rserve 子进程内存问题
- angular - Angular 2,直接访问 www.example.com/otherURL 时如何重定向到 www.example.com 的基础
- javascript - 给定一个包含数字和字符串的数组,Javascript 返回小于 100 的数字