0

Cake php 2.8.6 と sqlserver 2016 で quickapp -cms と croogo- cms の両方をセットアップしようとしました。mysql では問題なく動作しますが、sql server では失敗しました。次のエラーが発生します。

cake php 2.8.6
php 5.6.23
Ms sql server
Microsoft SQL Server Management Studio                      13.0.15700.28
Microsoft Analysis Services Client Tools                        13.0.1700.68
Microsoft Data Access Components (MDAC)                     6.2.9200.16384
Microsoft MSXML                     3.0 6.0 
Microsoft Internet Explorer                     9.10.9200.17607
Microsoft .NET Framework                        4.0.30319.42000
Operating System                        6.2.9200

====================================================================================
Unable to connect to database, please check your information. Details:
Connection to database could not be established: SQLSTATE[IMSSP]: An invalid encoding was specified for SQLSRV_ATTR_ENCODING.


================================================================================

私のデータベース構成:

    'datasource' => 'Database/Sqlserver',
    'persistent' => false,
    'host' => 'COLLONMADE\SQLEXPRESS',
    'login' => 'sa',
    'password' => 'root',
    'database' => 'cro',
    'prefix' => '',
    'encoding' => 'utf8',
4

1 に答える 1

1

最後に、私が思うに最適ではない解決策を見つけましたが、私の場合は機能します。この質問に答えてくれてありがとう。私はcroogo cmsバージョン 1.4.3 と 1.5.8 の両方でこれを試しましたが、どちらも完全に動作します。

myapp\lib\Cake\Model\Datasource\Database\Sqlserver.php に移動します

以下のようにフラグ行をコメントアウトします。

/*$flags = array(
            PDO::ATTR_PERSISTENT => $config['persistent'],
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        );

        if (!empty($config['encoding'])) {
            $flags[PDO::SQLSRV_ATTR_ENCODING] = $config['encoding'];
        }*/

        try {
            $this->_connection = new PDO(
                "sqlsrv:server={$config['host']};Database={$config['database']}",
                $config['login'],
                $config['password']
                //$flags
            );

この変更の後、次のステップに進むことができます。croogo では、設定テーブルが作成されていないため、内部サーバー エラーが発生します。次の手順に進みます。

config/schema/sql/croogo.sql

設定テーブルの挿入クエリをコピーして、データベースで実行します。

ここで再びインストール手順に進み、すべての手順を完了してログインできるようになります。

于 2016-09-13T11:39:39.263 に答える