2

我在我的配置文件中设置了一个数据库连接,如果我打印出 Yii::app() 的内容,我可以找到数据库连接的详细信息,它们是正确的。

然而,当我尝试使用 Gii 模型生成器工具时,它落在了我身上。

53    public function init() {
54 echo '<pre>';
55 print_r(Yii::app()->db);
56 echo '</pre>';
57 die();
58 Yii::app()->db = array(
59             'connectionString' => 'sqlsrv:Server=sti-hq2k8; Database=TrulinXLive',
60             'username' => 'jzumbrum',
61             'password' => 'my_super_secret_password',
62         'charset' => 'utf8',
63         'tablePrefix' => 'tbl',
64         );
65         if(Yii::app()->db===null)
66             throw new CHttpException(500,'An active "db" connection is required to run this generator.');

异常消息:

CDbConnection failed to open the DB connection: SQLSTATE[IMSSP]: The given attribute is only supported on the PDOStatement object. 

配置设置:

'db'=>array(
        'connectionString' => 'sqlsrv:Server=servername; Database=database',
        'username' => 'jzumbrum',
        'password' => 'password',
        'charset' => 'GB2312',
        'tablePrefix' => 'tbl',
    )
4

2 回答 2

4

据我记得,我认为一旦禁用模拟准备好的语句,我就不再遇到问题了:

'db'=>array(
    'connectionString' => 'sqlsrv:Server=servername; Database=database',
    'username' => 'jzumbrum',
    'password' => 'password',
    'charset' => 'GB2312',
    'tablePrefix' => 'tbl',
    'emulatePrepare' =>false
)

其他可能的问题/修复在这里:http ://www.yiiframework.com/forum/index.php/topic/17998-use-sqlsrv-with-php-53x-and-yii/

于 2012-07-13T03:21:28.500 回答
0

显然,问题是我可以连接到本地主机上的 sql 服务器。虽然我对这个服务器的设置方式并不十分熟悉,但我很确定我在另一台机器上,所以他们一定有一些疯狂的隧道或其他设置。

我觉得奇怪的是,当我输入错误的密码时,它告诉我存在连接错误,但是当我指定错误的服务器地址时,它却给了我另一个错误。也许它正在解决,只是有其他东西阻碍了它。

配置更改为:

'db'=>array(
    'connectionString' => 'sqlsrv:Server=localhost; Database=database',
    'username' => 'jzumbrum',
    'password' => 'password',
    'charset' => 'GB2312',
    'tablePrefix' => 'tbl',
)
于 2012-07-13T04:26:20.660 回答