ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的DB 类进行操作,而无需针对不同的数据库写不同的代码和底层实现,DB类会自动调用相应的数据库驱动来处理。目前ThinkPHP支持的数据库包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对PDO的支持。
在进行数据库应用之前,必须配置数据库连接信息。数据库的配置文件有三种配置方式:1、全局配置定义;2、模型类定义;3、实例化定义。在我的项目中,利用全局配置定义方式来配置数据库。
全局配置定义方法:
1 <?php 2 return array( 3 //\'配置项\'=>\'配置值\' 4 //数据库配置信息 5 \'DB_TYPE\' => \'mysqli\', //数据库类型 6 \'DB_HOST\' => \'localhost\', //数据库主机地址 7 \'DB_NAME\' => \'dbname\', //数据库名称 8 \'DB_USER\' => \'dbuser\', //数据库用户名 9 \'DB_PWD\' => \'dbpassword\', //数据库用户密码 10 \'DB_PORT\' => \'3306\', //数据库端口 11 \'DB_PREFIX\' => \'dbprefix_\', //数据库表前缀 12 \'DB_CHARSET\'=> \'utf8\', //数据库编码方式 13 \'DB_DEBUG\' => TRUE, //数据库调试模式 开启后可记录SQL日志 14 );
目前ThinkPHP支持的数据库设置:
|
DB_TYPE设置
|
对应的数据库类型 |
|
mysql或mysqli
|
mysql
|
|
pgsql
|
pgsql
|
|
sqlite
|
sqlite
|
|
mssql或sqlsrv
|
sqlserver
|
|
oracle
|
oracle
|
|
ibase
|
ibase
|
|
mongo
|
mongo
|
|
PDO
|
PDO支持的所有的数据库
|
全局配置也看使用下列配置方式简化数据库配置:
数据库类型://用户:密码@数据库地址:数据库端口/数据库名#字符集 示例:\'DB_DSN\' => \'mysql://dbuser:dbpassword@localhost:3306/dbname#utf-8\';
上述两种全局配置方式都存在的情况下,ThinkPHP优先使用DB_DSN设置的参数。