Yii2 HOW-TO:PDO连接数据库错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2 HOW-TO:PDO连接数据库错误相关的知识,希望对你有一定的参考价值。

问题代码

1,控制器代码如下:

    public function actionIndex()
    {
        $query = Country::find();

        $pagination = new Pagination([
            ‘defaultPageSize‘ => 5,
            ‘totalCount‘ => $query->count()
        ]);

        $countries = $query->orderBy(‘name‘)
            ->offset($pagination->offset)
            ->limit($pagination->limit)
            ->all();

        return $this->render(‘index‘, [
            ‘countries‘ => $countries,
            ‘pagination‘ => $pagination,
        ]);
    }

2,数据库配置文件db.php代码如下:

<?php

return [
    ‘class‘ => ‘yiidbConnection‘,
    ‘dsn‘ => ‘mysql:host=localhost;dbname=yii2basic‘,
    ‘username‘ => ‘root‘,
    ‘password‘ => ‘‘,
    ‘charset‘ => ‘utf8‘,

    // Schema cache options (for production environment)
    //‘enableSchemaCache‘ => true,
    //‘schemaCacheDuration‘ => 60,
    //‘schemaCache‘ => ‘cache‘,
];

3,问题截图:

技术分享图片

技术分享图片

解决办法

将PDO连接中的dsn的host由“localhost”改为“127.0.0.1”即可,打开文件DB.PHP,修改如下:

<?php

return [
    ‘class‘ => ‘yiidbConnection‘,
    ‘dsn‘ => ‘mysql:host=127.0.0.1;dbname=yii2basic‘,
    ‘username‘ => ‘root‘,
    ‘password‘ => ‘‘,
    ‘charset‘ => ‘utf8‘,

    // Schema cache options (for production environment)
    //‘enableSchemaCache‘ => true,
    //‘schemaCacheDuration‘ => 60,
    //‘schemaCache‘ => ‘cache‘,
];

结果截图

技术分享图片

以上是关于Yii2 HOW-TO:PDO连接数据库错误的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 HOW-TO:把数据从控制器传递到视图

PDO 异常 SQLSTATE[HY000] [2002] Yii2 上的 Elastic Beanstalk 和 RDS 连接超时

使用docker-compose编写常规的lnmp容器,pdo连接mysql失败。

使用 PDO 的 MS Access PHP 连接“找不到驱动程序”错误

PHP 数据库 PDO 连接

Laravel:连接错误PDO