ThinkPHP封装了一个ORM框架,对数据库进行操作,只要配置好数据库信息,就可以对数据库进行操作。
在读取配置文件时,系统会默认有限读取.env
的内容。在项目的根目录中,若不存在的话,可以将.example.env
文件重命名为.env
。修改下面对应属性
HOSTNAME 数据库的IP
DATABASE 所要操作的数据库名字
USERNAME 链接数据库的用户名
PASSWORD 密码
HOSTPORT 端口号
CHARSET 编码
APP_DEBUG = true
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = username
PASSWORD = password
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
[LANG]
default_lang = zh-cn
在根目录的config下的database.php也可以设置数据库的链接信息。很多系统都给了默认值,可以根据自己需要去修改。(注意:.env文件的优先级高于database.php这个文件)
// 数据库连接配置信息
'connections' => [
'mysql' => [
// 数据库类型
'type' => env('database.type', 'mysql'),
// 服务器地址
'hostname' => env('database.hostname', '127.0.0.1'),
// 数据库名
'database' => env('database.database', ''),
// 用户名
'username' => env('database.username', 'root'),
// 密码
'password' => env('database.password', ''),
// 端口
'hostport' => env('database.hostport', '3306'),
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => env('database.charset', 'utf8'),
// 数据库表前缀
'prefix' => env('database.prefix', ''),
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
'fields_strict' => true,
// 是否需要断线重连
'break_reconnect' => false,
// 监听SQL
'trigger_sql' => env('app_debug', true),
// 开启字段缓存
'fields_cache' => false,
],
],
代码测试
创建一个用于测试数据库链接的控制器 DataBaseTest.php
<?php
namespace app\controller;
use think\facade\Db;
class DataBaseTest
{
public function index()
{
// 取出表明为tp_user中的所有数据
$user = Db::table('tp_user')->select();
return json($user);
}
}
然后访问这个控制器,只要能正确输出,那么数据库配置就算成功了。