我正在为我的项目使用Zend Framework3。我想在Sql Server 2014中使用Doctrine。当我使用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我已经完成了done所需的所有配置。首先,我在config/autoload/local中配置我的sql server数据库凭据,如下所示:
<?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文件中添加规则代码,以允许它知道我的实体所在的位置。
'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任何想法或建议都是受欢迎的,谢谢。
发布于 2018-05-22 13:07:45
请按照以下代码更改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端口号:Identify Port used by SQL Server Database Engine Using SQL Server Configuration Manager
https://stackoverflow.com/questions/49254410
复制相似问题