CakePHP cms с ошибкой sqlserver

Я пытался настроить как quickapp -cms, так и croogo-cms с помощью торта php 2.8.6 и sqlserver 2016. Он работает нормально с MySQL, но не удалось с сервером SQL. Я сталкиваюсь со следующей ошибкой:

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

Решение

В конце концов я нашел решение, которое не является оптимальным, как я думаю, но работает в моем случае. Спасибо всем за ответ на этот вопрос. Я пробовал это с 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

и скопируйте запрос вставки таблицы настроек и выполните в вашей базе данных.

Теперь снова перейдите к процедуре установки, вы сможете завершить все шаги и войти в систему.

0

Другие решения

Других решений пока нет …