如何将SQL Server与Yii2连接

尝试连接SQL Server和yii2时出错。</ p>

SQL 服务器和PHP代码位于独立的服务器中。</ p>

在Ubuntu 18.04上PHP环境是PHP 7.0.31。</ p>

数据库服务器环境是MS SQL Window NT 6.1上的SERVER v9.00.1399.06 </ p>

我安装了PDO驱动程序,如下所示</ p>

  apt install php7.0-sybase

</ code> </ pre>

以下是我的main-local.php </ p>

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

我收到以下错误消息。</ p>

 无效配置 -  yii  \ base \ InvalidConfigException 
在实例化“yii \ db \ mssql \ PDO”时,需要参数“dsn”。

1。 在/var/www/html/ms/vendor/yiisoft/yii2/di/Container.php第466行

2。 在/var/www/html/ms/vendor/yiisoft/yii2/di/Container.php第370行 - yii \ di \ Container :: resolveDependencies([yii \ di \ Instance,yii \ di \ Instance,yii \ di \ Instance,yii \ di \ Instance],ReflectionClass)
</ code> </ pre>

似乎与类reflction相关,但我不知道如何解决它。</ p> \ n

希望有人可以帮忙解决这个问题。</ p>
</ div>

展开原文

原文

I got errors when trying to connecting SQL server with yii2.

SQL Server and PHP code are in separated server.

The PHP environment is PHP 7.0.31 on Ubuntu 18.04.

And Database Server Environment is MS SQL SERVER v9.00.1399.06 on Window NT 6.1

And I installed the PDO Drive as following

apt install php7.0-sybase

The following is my main-local.php

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

And i got the following error message.

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)

Seems related to class reflction but I have no idea on how to solve it.

Hope someone can give a help hand on this.

1个回答



尝试</ p>

 'db'=&gt;  [
'class'=&gt; 'yii \ db \ Connection',
'driverName'=&gt; 'sqlsrv',
'dsn'=&gt; 'sqlsrv:Server = xx.xx.xx.xx; Database = xxxx',
'username'=&gt; '&lt; username&gt;',
'password'=&gt; '&lt; password&gt;',
'charset'=&gt; 'utf8'
],
</ code> </ pre>
</ div>

展开原文

原文

Try

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

drccfl9407
drccfl9407 我不确定,但我已经在网上看到几个人们在使用适当的MSSQL PDO驱动程序时遇到问题。 以防您可能想要检查是否已使用此库更新了控制台和Web PHP配置。
接近 2 年之前 回复
duanrenchuo9244
duanrenchuo9244 但我在phpinfo()中得到了pdo_sqlsrv。 对司机有什么额外要求吗?
接近 2 年之前 回复
drh78568
drh78568 它转向PDOException:找不到驱动程序
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问