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 回答