thinkphp6 怎么链接数据库
时间: 2025-01-08 17:32:04 浏览: 5
### ThinkPHP6 连接 MySQL 数据库的方法
在 ThinkPHP6 中,连接数据库的方式相比之前版本有所改进。以下是详细的配置教程和示例代码。
#### 1. 配置文件设置
ThinkPHP6 的数据库配置通常位于 `config/database.php` 文件中。可以通过修改此文件来定义数据库连接参数:
```php
return [
// 默认使用的数据库连接配置
'default' => env('database.driver', 'mysql'),
// 自定义数据库配置
'connections' => [
'mysql' => [
// 数据库类型
'type' => env('database.type', 'mysql'),
// 服务器地址
'hostname' => env('database.hostname', '127.0.0.1'),
// 数据库名
'database' => env('database.database', 'test_db'),
// 用户名
'username' => env('database.username', 'root'),
// 密码
'password' => env('database.password', ''),
// 端口
'hostport' => env('database.hostport', '3306'),
// 数据库编码默认采用utf8mb4
'charset' => env('database.charset', 'utf8mb4'),
// 数据库表前缀
'prefix' => env('database.prefix', ''),
// 断线重连
'break_reconnect' => true,
// 启用严格模式
'strict' => false,
],
],
];
```
上述配置允许通过环境变量灵活调整数据库连接属性[^1]。
#### 2. 动态创建数据库连接实例
除了静态配置外,在特定场景下也可以动态建立新的数据库连接对象。这适用于多租户或多数据库的应用架构:
```php
use think\db\Connection;
$connectionConfig = [
"type" => "mysql",
"hostname" => "localhost",
"database" => "another_database",
"username" => "db_user",
"password" => "db_password",
];
$dbInstance = new Connection($connectionConfig);
$resultSet = $dbInstance->table('users')->select();
var_dump($resultSet);
```
这段代码展示了如何即时指定不同的数据库连接信息并执行查询操作[^2]。
#### 3. 使用模型进行CRUD操作
对于更复杂的业务逻辑处理,推荐利用 ORM 模型来进行数据交互。下面是一个简单的例子展示如何基于已有的 User 表构建 Model 类,并完成基本的增删改查动作:
```php
namespace app\model;
use think\Model;
class UserModel extends Model {
protected $name = 'user'; // 对应的数据表名称(不含前缀)
}
// 创建记录
$userModel = new UserModel;
$newUser = ['name'=>'John Doe','email'=>'john@example.com'];
$userModel->save($newUser);
// 更新记录
$idToUpdate = 1;
$dataToUpdate = ['email'=>"johndoe@domain.net"];
$userModel->where(['id'=>$idToUpdate])->update($dataToUpdate);
// 删除记录
$idToDelete = 2;
$userModel->destroy($idToDelete);
// 获取单条记录
$singleRecord = $userModel->find(3)->toArray();
// 批量获取多条记录
$multiplesRecords = $userModel->select()->toArray();
```
以上就是 ThinkPHP6 下几种常见的数据库连接及操作方式介绍[^3]。
阅读全文