Yii2 HOW-TO(4):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‘ => ‘yii\db\Connection‘,
    ‘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‘ => ‘yii\db\Connection‘,
    ‘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‘,
];

结果截图

原文地址:http://blog.51cto.com/zhuxianzhong/2286561

时间: 2024-08-30 18:14:38

Yii2 HOW-TO(4):PDO连接数据库错误的相关文章

MySQL_PHP学习笔记_2015_0907_PHP用pdo连接数据库时报错 could not find driver

环境: Windows, zend studio 错误信息: could not find driver   第一想到的办法还是百度--   下面是解决办法: 由于PHP默认的设置中, php_pdo_mysql模块是关闭的, 所以才会报could not find driver的错误; 把这个模块打开, 重启apache. 摘自互联网:pdo 连接数据库 报错 could not find driver 解决方法

pdo简介--错误与错误处理

PDO 简介——错误和错误处理 标签: database数据库exception脚本phpup 2008-09-28 19:42 1623人阅读 评论(0) 举报  分类: PHP(10)  为适合你的应用开发,PDO 提供了3中不同的错误处理策略. PDO::ERRMODE_SILENT 这是默认使用的模式.PDO会在statement和database对象上设定简单的错误代号,你可以使用PDO->errorCode() 和 PDO->errorInfo() 方法检查错误:如果错误是在对st

PHP5中使用PDO连接数据库

PDO  如何连接 new PDO("mysql:host=localhost;dbname=php100","root", “ "); 默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数: array(PDO::ATTR_PERSISTENT => true) 变成这样: new PDO(“连接信息”, 'root', '', array(PDO::ATTR_PERSISTENT => true)); PDO 常用方法及其使用 PD

【转】php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)

原文链接:http://blog.csdn.net/ysydao/article/details/11002295 PHP 用pdo连接数据库时出现中文乱码问题解决办法 1.array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"),在与数据库建立连接的时候的第四个参数   example:        $dbh = new PDO($dsn,$user,$pass,array(PDO::MYSQL_ATTR_INIT_COM

PHP连接数据库错误:Can&#39;t connect to MySQL server on &#39;127.0.0.1&#39; (13)2003

学习PHP中的.今天学习php连接数据库,代码如下:    <?php       $link = mysql_connect("127.0.0.1","root","123456");         if($link) {             echo '数据源连接成功';         }         else {             echo "数据库连接失败,请检查帐户密码".  mysql_er

php PDO连接数据库

[PDO是啥] PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll.php_pgsql.dll.php_mssql.dll.php_sqlite.dll等等扩展来连接MySQL.PostgreSQL.MS SQL Server.SQLite,同样的,我们必须借助 ADOdb.PEAR::DB.PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够

封装PDO连接数据库代码

废话不说直接上代码: 1 <?php 2 class DB 3 { 4 protected static $_connect; 5 protected $dsn, $pdo; 6 protected $_data, $_count, $_lastInsertId; 7 8 /** 9 * 构造函数 10 * 11 * @return DB 12 */ 13 private function __construct($dbHost, $dbUser, $dbPasswd, $dbName, $db

thinkphp数据库PDO::SQLSRV_ATTR_ENCODING错误的解决

这两天刚粗略看了一下thinkphp3.2.3,决定在新项目中用这个框架,早上做了一下配置, 测试时发现报错: Fatal error: Undefined class constant 'PDO::SQLSRV_ATTR_ENCODING' . 搜了一下,同样的问题还真有不少人碰到,而且没有找到有效的解决方案.用自己写的连接MSSQL方法去连接2008版本的数据库,能正常连接,那么问题出在哪呢?百思不得骑姐,扩展很早就复制到ext文件下并且在配置文件里做了相应配置,思来想去再去看了一下这个错误

pdo 连接数据库 报错 could not find driver 解决方法

在windows 下,调试一个PHP程序时,报了这个错误, could not find driver 原来我的这个程序中用到了PDO对象, 连接mysql 5.  在PHP的默认设置中,只打开了php_pdo 模块, 没有打开php_pdo_mysql模块.所以才会出现找不到驱动程序的错误. 把这个模块打开,重启apache就可以了. 当然了,如果你用别的数据库,打开对应的模块就OK了. extension=php_pdo_mysql