Я использую Zend Framework 3 для своего проекта. Я хотел бы использовать Doctrine с Sql Server 2014. Когда я использую Zend-Db, все в порядке, но использование Doctrine показывает мне следующее сообщение:
Fatal error: Invalid handle returned. in C:\Users\root\zendwithsqlserver\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php on line 43
Я сделал все конфигурации, необходимые для доктрины
Сначала я настраиваю свои учетные данные базы данных сервера sql в config / autoload / local следующим образом:
<?php
use Doctrine\DBAL\Driver\PDOSqlsrv\Driver as PDOSqlsrvDriver;
return array(
'doctrine' => [
'connection' => [
'orm_default' => [
'driverClass' => PDOSqlsrvDriver::class,
'params' => [
'host' => 'localhost',
'user' => 'sa',
'password' => 'mypassword',
'dbname' => 'blog',
]
],
],
],
);
Чтобы закончить в моем файле module.config.php, расположенном в модуле / Application / module /, я добавляю код доктрины, чтобы он знал, где находятся мои сущности.
'doctrine' => [
'driver' => [
__NAMESPACE__ . '_driver' => [
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => [__DIR__ . '/../src/Entity']
],
'orm_default' => [
'drivers' => [
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
]
]
]
]
Я хотел бы знать, как я могу исправить эту ошибку ?:
Fatal error: Invalid handle returned. in C:\Users\root\zendwithsqlserver\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php on line 43
Любая идея или предложение приветствуется, спасибо заранее.
Пожалуйста, измените local.php, как показано ниже.
<?php
use Doctrine\DBAL\Driver\SQLSrv\Driver as SQLSrvDriver;
return [
'doctrine' => [
'connection' => [
'orm_default' => [
'driverClass' => SQLSrvDriver::class,
'params' => [
'host' => 'USER-PC\MYINSTANCE',
'user' => 'sa',
'password' => 'mypassword',
'dbname' => 'blog',
'port' => '49166'
]
],
],
],
];
Пожалуйста, обратитесь по этой ссылке, чтобы найти номер порта mssql: Определите порт, используемый компонентом базы данных SQL Server с помощью диспетчера конфигурации SQL Server
Других решений пока нет …