在ThinkPHP8中,连接数据库主要通过配置文件完成,而执行数据库查询则通常在模型(Model)或者控制器(Controller)中进行。下面我将分别给出数据库配置示例和一个简单的数据库查询示例。

1. 数据库配置

首先,确保你的 .env 文件或者 config/database.php 文件中包含了正确的数据库连接信息。这里以MySQL为例:

.env 文件示例:

DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_NAME=mydatabase
DB_USER=root
DB_PWD=password
DB_PORT=3306
DB_PREFIX=tp_
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

或者直接在 config/database.php 中配置:

<?php
return [
    // ...
    'connections' => [
        // 默认的数据库连接配置
        'default' => [
            'type'            => env('DB_TYPE', 'mysql'),
            'hostname'        => env('DB_HOST', '127.0.0.1'),
            'database'        => env('DB_NAME', 'mydatabase'),
            'username'        => env('DB_USER', 'root'),
            'password'        => env('DB_PWD', 'password'),
            'hostport'        => env('DB_PORT', '3306'),
            'prefix'          => env('DB_PREFIX', 'tp_'),
            // 其他配置项...
        ],
    ],
];
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
2. 查询示例

接下来,演示如何在控制器中执行一个简单的数据库查询。假设我们有一个 User 模型对应 users 表,我们要获取所有用户的数据。

User模型 (app\model\User.php) 示例:

namespace app\model;

use think\Model;

class User extends Model
{
    // 如果有表前缀或需要指定其他表名,可以在这里设置
    protected $table = 'users';
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

控制器示例 (app\controller\UserController.php) :

namespace app\controller;

use app\model\User;
use think\Request;

class UserController
{
    public function index()
    {
        // 使用模型进行查询
        $users = User::all();

        // 将数据传递给视图
        return view('', ['users' => $users]);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

在这个例子中,User::all() 方法会查询 users 表中的所有记录。查询结果被传递给视图,展示给用户。