【问题标题】:cakephp cms with sqlserver error带有sqlserver错误的cakephp cms
【发布时间】:2016-09-10 09:54:35
【问题描述】:

我尝试使用 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',

【问题讨论】:

标签: php cakephp content-management-system croogo quickapps-cms


【解决方案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

并复制设置表的插入查询并在您的数据库中执行。

现在再次进入安装程序,您将能够完成所有步骤并登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多