SQLSTATE[08001]:[Microsoft][ODBC Driver 13 for SQL Server]TC



我的学说存储库代码不起作用,而我能够正常访问数据库并读取表数据。

我得到这个堆栈跟踪:

EntityManager->getRepository('AppBundle:Person') in srcAppBundleControllerPersonViewController.php (line 18) 
public function indexAction(Request $request) {
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository('AppBundle:Person');
$persons = $repo->findAll();
dump($persons);

人员实体模型:

Person.php

namespace AppBundleEntity;
use DoctrineORMMapping as ORM;
/**
* Class Person
* @Package AppBundle/Entity
*
* @ORMEntity(repositoryClass="AppBundleRepositoryPersonRepository")
* @ORMTable(name="[Person]")
*/
class Person {
/**
* @ORMColumn(type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORMColumn(type="string", length=4)
*/
protected $type;
}

如果这也是必要的,存储库代码:

PersonRepository.php

<?php
namespace AppBundleRepository;
use /** @noinspection PhpUndefinedClassInspection */
DoctrineORMEntityRepository;
class PersonRepository extends EntityRepository {
public function create() {
$entity = new Person();
$entity->type('WM_B');
$this->_em->persist($entity);
$this->_em->flush();
}
}

SQL Server Configuration Manager ->SQL Server Network Configuration -> Protocols For -> TCP/IP ->

我更改了以下内容

IpAll
TCP Dynamic Ports 49226
TCP Port

自:

IpAll
TCP Dynamic Ports
TCP Port          1433

不确定什么是 TCP 动态端口以及为什么配置它们。

适用于SQL Server 2019 开发人员

在默认安装中:

  • TCP/IP 已禁用
  • 身份验证设置为仅 Windows 身份验证模式

修复

  1. 要启用 TCP/IP,请执行以下操作:

    Start Menu
    -> Microsoft SQL Server 2019
    -> SQL Server 2019 Configuration Manager 
    -> SQL Server Network Configuration 
    -> Protocols For MSSQLSERVER 
    -> TCP/IP
    -> Enable
    
  2. 若要启用 SQL 身份验证模式,请执行以下操作:

    Start Menu
    -> Microsoft SQL Server Tools 
    -> Microsoft SQL Server Management Studio
    -> Right-Click the server node 
    -> Properties
    -> Security
    -> Under Authentication choose "SQL Server and Windows Authentication Mode"
    
  1. 上述更改需要重新启动"MSSQLSERVER"服务。

相关内容

  • 没有找到相关文章

最新更新