gpt4 book ai didi

php - 在 Codeigniter 中动态加载数据库连接数据

转载 作者:行者123 更新时间:2023-11-29 14:18:18 27 4
gpt4 key购买 nike

我正在尝试完成以下功能:我有一个到数据库的主连接(在 application/config/database.php 内:db['default']),并且连接有效,它检索数据,我想要使用该数据建立与不同数据库的新连接。

这可能吗,还是我需要创建一个外部 PDO 连接来处理它?

(我使用的是 Codeigniter 3.1.0)

最佳答案

在 Touheed Khan 的帮助下,我找到了我的问题的解决方案,并将其发布在这里,因为我必须对建议的解决方案进行一些变通才能使其正常工作。以下是我的解决方案目前的工作方式:

Controller.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Controller extends CI_Controller {
public $dynamicDB;

public function __construct() {
parent::__construct();
}

public function index() {
//Somehow retrieve the following information from user.
$host;
$user;
$pass;
$dbname;
$port;
// End of retrieval information from user.

$this->dynamicDB = array(
'hostname' => $host,
'username' => $user,
'password' => $pass,
'database' => $dbname,
'dbdriver' => 'postgre',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'port' => $port
);

$this->load->model('data_model');
$result = $this->data_model->select($this->dynamicDB,
$this->get('id'));
var_dump($result);
}
}

Data_model.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Data_model extends CI_Model {
function __construct(){
parent::__construct();
}

public function returnQuery($query) {
if ($query->num_rows() > 0) {
return $query->result();
} else {
return array();
}
}

public function select($dynamicDB, $id) {
$dynamicDB = $this->load->database($dynamicDB, TRUE);

$dynamicDB->select('*');
$dynamicDB->where('id', $id);
$dynamicDB->from('table');

$query = $dynamicDB->get();
return $this->returnQuery($query);
}
}

关于php - 在 Codeigniter 中动态加载数据库连接数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40188612/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com