首页 > 开发 > PHP > 正文

ThinkPHP连接数据库的方式汇总

2024-05-04 22:16:53
字体:
来源:转载
供稿:网友

本文实例汇总了ThinkPHP连接数据库的几种常用方式。分享给大家供大家参考。具体如下:

ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库适配器来处理,目前的数据库包括Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase以及PDO的支持,如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式:

第一种:在项目配置文件里面定义
代码如下:return array( 
'DB_TYPE'=> 'mysql',  
'DB_HOST'=> 'localhost', 
'DB_NAME'=>'thinkphp',  
'DB_USER'=>'root',  
'DB_PWD'=>'',  
'DB_PORT'=>'3306', 
'DB_PREFIX'=>'think_', 
// 其他项目配置参数……… 
);
系统推荐使用该种方式,因为一般一个项目的数据库访问配置是相同的,该方法系统在连接数据库的时候会自动获取,无需手动连接.

可以对每个项目定义不同的数据库连接信息,还可以在调试配置文件(Conf/debug.php)里面定义调试数据库的配置信息,如果在项目配置文件和调试模式配置文件里面同时定义了数据库连接信息,那么在调试模式下面后者生效,部署模式下面前者生效.

第二种 使用DSN方式在初始化Db类的时候传参数
代码如下:$db_dsn = "mysql://username:passwd@localhost:3306/DbName"; 
$db = new Db($db_dsn);
该方式主要用于在控制器里面自己手动连接数据库的情况,或者用于创建多个数据库连接.

第三种 使用数组传参数
代码如下:$DSN = array(  
'dbms'     => 'mysql',   
'username' => 'username',   
'password' => 'password',   
'hostname' => 'localhost',   
'hostport' => '3306',   
'database' => 'dbname'  
); 
$db = new Db($DSN);
该方式也是用于手动连接数据库的情况,或者用于创建多个数据库连接.

第四种 在模型类里面定义
代码如下:protected $connection = array(  
'dbms'     => 'mysql',   
'username' => 'username',   
'password' => 'password',   
'hostname' => 'localhost',   
'hostport' => '3306',   
'database' => 'dbname'  
); 
// 或者使用下面的定义 
protected $connection = "mysql://username:passwd@localhost:3306/DbName";
如果在某个模型类里面定义了connection属性,则在实例化模型对象的时候,会使用该数据库连接信息进行数据库连接,通常用于某些数据表位于当前数据库连接之外的其它数据库.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表