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

どうやら、問題は、localhost で SQL サーバーに接続できることでした。私はこのサーバーがどのようにセットアップされているかよく知りませんが、別のマシンにいることは確かでした。

間違ったパスワードを入力すると接続エラーが発生したと通知されたのに、間違ったサーバー アドレスを指定すると別のエラーが表示されるのは奇妙です。おそらくそれは解決していましたが、そのようにそれをブロックしている何かがあっただけです。

構成が次のように変更されました:

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