尝试将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)
似乎与类反射有关,但我不知道如何解决。
希望有人可以提供帮助。
答案 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',
我希望这会有所帮助。 问候 阿莱西奥