如何使用Yii2连接SQL Server

时间:2018-10-10 07:27:57

标签: php sql-server yii2

尝试将SQL Server与yii2连接时出现错误。

SQL Server和PHP代码在单独的服务器中。

PHP环境是Ubuntu 18.04上的PHP 7.0.31。

数据库服务器环境是Windows NT 6.1上的MS SQL SERVER v9.00.1399.06

然后我按照以下说明安装了PDO驱动器

apt install php7.0-sybase

以下是我的main-local.php

'db' => [
        'class' => 'yii\db\mssql\PDO',
        'dsn' => 'sqlsrv:Server=xx.xx.xx.xx;Database=xxxx',
        'username' => '<username>',
        'password' => '<password>',
        'charset' => 'utf8'
],

我收到以下错误消息。

Invalid Configuration – yii\base\InvalidConfigException
Missing required parameter "dsn" when instantiating "yii\db\mssql\PDO".


1. in /var/www/html/ms/vendor/yiisoft/yii2/di/Container.php at line 466

2. in /var/www/html/ms/vendor/yiisoft/yii2/di/Container.php at line 370 – yii\di\Container::resolveDependencies([yii\di\Instance, yii\di\Instance, yii\di\Instance, yii\di\Instance], ReflectionClass)

似乎与类反射有关,但我不知道如何解决。

希望有人可以提供帮助。

2 个答案:

答案 0 :(得分:3)

尝试

'db' => [
    'class' => 'yii\db\Connection',
    'driverName' => 'sqlsrv',
    'dsn' => 'sqlsrv:Server=xx.xx.xx.xx;Database=xxxx',
    'username' => '<username>',
    'password' => '<password>',
    'charset' => 'utf8'
],

答案 1 :(得分:0)

在我的mssql连接解决方​​案下面:

从phpinfo()我知道 PHP Extension Build API20190902,TS,VC15

然后在文件夹.. \ xampp \ php中的文件php.ini中 插入

扩展名= php_pdo_sqlsrv_74_ts_x64.dll 扩展程序= php_sqlsrv_74_ts_x64.dll

我已经从Microsoft网站下载了该dll。 将dll放入文件夹.. \ xampp \ php \ ext

在yii2的框架中,在文件.. \ basic \ config \ db.php中 这是连接字符串

'class' => 'yii\db\Connection',
'dsn' => 'sqlsrv:Server=xxxxx\xxxxx;Database=xxxxx',
'username' => 'xxx',
'password' => 'xxxxxxx',
'charset' => 'utf8',

我希望这会有所帮助。 问候 阿莱西奥