模型用于处理数据库的PHP类
模型类文件放在 application/models/文件夹下,可以建立子文件夹
模型可以在控制器中被引用。如: $this->load->model(‘Model_name’);
模型一旦被载入就能使用: $this->Model_name->function();
可以为模型起别名,方便使用: $this->load->model(‘Model_name’,’SNK’);$this->SNK->function();
如果需要一个在整个项目中都起作用的模型,可以让CI在初始化时自动装载它。实际的方法是打开 application/config/autoload.php然后再自动装载数组中添加上这个模型。
当模型被载入时并不会自动连接数据库
模型类文件放在 application/models/文件夹下,可以建立子文件夹
最基本的模型类必须像这样。
class Model_name extends CI_Model{
function __construct(){
parent::_construct();
}
}
类名首字母必须大写,其他字母小写。文件名应该是模型类名的小写版。
模型可以在控制器中被引用。如: $this->load->model(‘Model_name’);
模型一旦被载入就能使用: $this->Model_name->function();
可以为模型起别名,方便使用: $this->load->model(‘Model_name’,’SNK’);$this->SNK->function();
如果需要一个在整个项目中都起作用的模型,可以让CI在初始化时自动装载它。实际的方法是打开 application/config/autoload.php然后再自动装载数组中添加上这个模型。
当模型被载入时并不会自动连接数据库
连接数据库的方法:
- 把第三个参数设为TRUE来使模型装载函数自动连接数据库,连接配置可以在数据库配置文件中定义:$this->load->model(‘Model_name’,’’,TRUE);
- 手动设定第三个参数来载入自定义数据库配置:
$config[‘hostname’] = ‘localhost’; $config[‘username’] = ‘root’; $config[‘password’] = ‘’; $config[‘$database’] = ‘dbname’; $config[‘dbdriver’] = ‘mysql’; $config[‘dbprefix’] = ‘’; $config[‘pconnect’] = FALSE; $config[‘db_debug’] = FALSE; $this->load->model(‘Model_name’,’’,$config);
- 标准方法连接数据库
自动连接“自动连接”功能将每个页面加载时自动实例化数据库类。要启用“自动连接”,可以在application/cofig/autoload.php中的library数组中添加database:$autoload[‘libraries’] = array(‘database’);
手动连接
$config['hostname'] = "localhost"; $config['username'] = "myusername"; $config['password'] = "mypassword"; $config['database'] = "mydatabase"; $config['dbdriver'] = "mysql"; $config['dbprefix'] = ""; $config['pconnect'] = FALSE; $config['db_debug'] = TRUE; $config['cache_on'] = FALSE; $config['cachedir'] = ""; $config['char_set'] = "utf8"; $config['dbcollat'] = "utf8_general_ci"; $this->load->database($config);
或DSN方式提交数据库配置信息
当用DSN字符连接时,要覆盖配置默认值,则添加配置变量为查询字符串$dsn = 'dbdriver://username:password@hostname/database';$this->load->database($dsn);
$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache';$this->load->database($dsn);
当dbdriver值为mysqli来进行远程连接时,切记要指定一个参数Port为远程mysql端口重新连接/保持连接有效 $this->db->reconnect();
手动关闭连接 $this->db->close();