跳到主要内容

CodeIgniter如何手动将模型连接到数据库?

参考答案:

在 CodeIgniter 中,模型通常会自动连接到数据库,因为模型类继承自 CI_Model,而 CI_Model 已经内置了数据库连接功能。但是,如果你有特殊的需求,想要手动管理数据库连接,你可以按照以下步骤进行:

  1. 创建自定义数据库连接

你可以在 app/Config/Database.php 文件中添加新的数据库连接配置。例如:

public $customDB = [
    'dsn'      => '',
    'hostname' => 'localhost',
    'username' => 'your_username',
    'password' => 'your_password',
    'database' => 'your_database',
    'DBDriver' => 'MySQLi',
    'DBPrefix' => '',
    'pConnect' => false,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'cacheOn'  => false,
    'cacheDir' => '',
    'charset'  => 'utf8',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => false,
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
];
  1. 在模型中手动连接数据库

在你的模型类中,你可以使用 $this->load->database() 方法来加载并连接到数据库。你可以传递配置数组的键名作为参数来指定要使用的连接。

<?php namespace App\Models;

use CodeIgniter\Model;

class YourModel extends Model
{
    protected $db;

    public function __construct()
    {
        parent::__construct();
        
        // 加载并连接到自定义数据库
        $this->db = \Config\Database::connect('customDB');
    }
    
    // ... 其他模型方法 ...
}

现在,你可以使用 $this->db 对象来执行数据库查询了。例如:

public function getSomeData()
{
    $query = $this->db->query('SELECT * FROM your_table');
    return $query->getResultArray();
}
  1. 注意事项
  • 这种方法主要用于特殊情况,当你需要手动管理数据库连接时。在大多数情况下,CodeIgniter 的自动连接功能应该足够了。
  • 使用手动连接时,请确保正确配置数据库连接信息,并处理任何可能出现的连接错误或异常。
  • 在你的模型中使用手动数据库连接时,要注意避免与自动连接的冲突或重复连接的问题。