在 yii2 中连接 mysql 数据库,需要在配置文件(如 config/db.php)的 components 数组下配置 db 组件,指定 class 为 yii\db\connection,并填入 dsn、username、password 和 charset。配置完成后,通过 yii::$app->db 即可获取连接实例进行查询或操作。

如何配置数据库连接参数
直接回答:在 config/db.php 文件中定义一个包含连接参数的数组,并将其合并到主配置中。需要设置 dsn 以指定驱动、主机和数据库名,同时提供用户名和密码以完成认证。

$params = array_merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/main.php'),
require(__DIR__ . '/main-local.php')
);
return [
'id' => 'basic-backend',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'backend\controllers',
'bootstrap' => ['log'],
'modules' => [],
'components' => [
'request' => [
'csrfParam' => '_csrf-backend',
],
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true],
],
'db' => require(__DIR__ . '/db.php'),
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [],
],
'cache' => [
'class' => 'yii\caching\FileCache',
],
],
'params' => $params,
];
预期结果:应用启动时加载 db.php 中的配置,初始化 yii\db\Connection 对象,后续调用 Yii::$app->db 将返回该实例。
安装、修复、更新或打包一个基于 Python 和 PyMySQL 实现的 Windows `mysql` 命令。适用于用户希望在 PowerShell/CMD 中输入 `mysql` 时重定向到 Python 实现、需要交互式输入 MySQL 连接信息、需要同步到当前用户本地 bin 目录,或需要将该能力封装成可公开复用的 Codex skill。
如何在代码中使用数据库连接
直接回答:在控制器或模型中通过 Yii::$app->db 访问数据库连接实例,使用 createCommand() 执行 SQL 语句或使用 ActiveRecord 进行面向对象操作。

<?php
namespace backend\controllers;
use Yii;
use yii\web\Controller;
class SiteController extends Controller
{
public function actionIndex()
{
// 方式一:使用 Command 执行原生 SQL
$users = Yii::$app->db->createCommand('SELECT * FROM user')-
->queryAll();
// 方式二:使用 ActiveRecord (假设存在 User 模型)
// $users = User::find()->all();
return $this->render('index', [
'users' => $users,
]);
}
}
预期结果:actionIndex 执行后,$users 变量包含从 user 表查询到的所有记录数组,渲染视图时展示数据。
当数据库连接失败时会发生什么
直接回答:如果配置错误导致连接失败,Yii2 会抛出 yii\db\Exception 异常,通常表现为 HTTP 500 错误页面,并在日志中记录详细的连接错误信息。

















