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:[email protected]:3306/dbname#utf-8‘;
上述两种全局配置方式都存在的情况下,ThinkPHP优先使用DB_DSN设置的参数。
时间: 2024-10-14 05:46:27