2016-09-10 82 views
0

我试图设置quickapp-cms和croogo cms与蛋糕的PHP 2.8.6和sqlserver 2016。它适用于MySQL,但与SQL服务器失败。我遇到以下错误:cakephp cms与sqlserver错误

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

我已经试过了,但问题仍然存在 – apurv

+0

尝试更改编码值,即'UTF8','utf-8','iso_1 '等 – SaidbakR

回答

0

终于让我找到解决办法当我想到这是不是最佳的,但在我的情况下工作。感谢所有回答这个问题。我已经与croogo cms版本1.4.3和1.5.8一起尝试完成这两项工作。

去MYAPP \ LIB \蛋糕\型号\数据源\数据库\ 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 

和复印设置表的插入查询,并在数据库中执行。

现在再次去安装程序,你将能够完成所有步骤和登录。