2016-09-10 11 views
0

quickapp -cmsとcogogocmsの両方をcake php 2.8.6とsqlserver 2016でセットアップしようとしました。それはMySQLでうまく動作しますが、SQLサーバでは失敗しました。cakephp cms with sqlserver error

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', 
+0

http://stackoverflow.com/questions/20042778/cakephp-sqlserver-encoding – ndm

+0

私はすでにそれを試してみましたが、問題はまだすなわち 'UTF8'、' UTF-8'、 'iso_1を、エンコード値を変更しようと – apurv

+0

持続'など、 – SaidbakR

答えて

0

は最後に、私は私が考えるが、私の場合には著作物として最適ではない解決策を見つけました。この質問にお答えいただき、ありがとうございます。私はcroogo cmsバージョン1.4.3と1.5.8でこれを試しましたが、どちらも完璧に動作します。

はSqlserver.php

\ \ libに\ケーキ\モデル\データソース\データベースをMYAPPに移動し、以下のようにフラグ行をコメントアウト:

/*$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 
      ); 

この変更した後は、次に行くことができます

config/schema/sql/croogo.sql 

と設定テーブルの挿入クエリをコピーして、データベースに実行します。croogoにあなたはそれがとてもに行く設定表を作成していないためである内部サーバーエラーが発生しますステップ。

もう一度インストールすると、すべての手順とログインが完了します。