Doctrine找不到驱动程序pdo_sqlsrv [Windows]

时间:2016-06-28 00:35:24

标签: php sql-server symfony pdo doctrine-orm

我正在使用交响乐构建一个网站,我需要使用Windows 7和SQL Server 2014。 (我在wamp服务器x64中使用php 5.6)

我已经检查了其他类似的问题:Cannot find driver pdo_sqlsrv但它们似乎无法正常工作,而其他大多数问题都基于Linux版本。

进入symfony的config.yml我把:

# Doctrine Configuration
doctrine:
   dbal:
       driver: pdo_sqlsrv

目前我试图运行

php bin/console doctrine:database:create

从我项目的根文件夹中给出了以下内容:

  

[学说\ DBAL \驱动\ PDOException]
      找不到司机
      [PDOException]
      找不到司机

我已经检查过并在测试文件中直接运行一个简单的查询到pdo它可以工作,并且也与pdo驱动程序列为[0] => sqlsrv

作为一个注释,Windows提供的驱动程序没有按预期工作,而是http://robsphp.blogspot.mx/2012/06/unofficial-microsoft-sql-server-driver.html这些驱动程序。

2 个答案:

答案 0 :(得分:0)

好吧,我设法找到了解决方案。首先停止使用apache作为服务器,而是使用IIS。这解决了微软驱动程序无法正常工作的问题。

下一个问题是与数据库的连接被不断拒绝。这是通过启用TCP IP并将端口分配给IPALL

来解决的

希望这对某人有用。

答案 1 :(得分:0)

对此,我的解决方案是直接从完全合格的php路径调用doctrine。 WAMP不想在PATH中使用您的php版本,但是您需要能够使这些版本起作用,所以我做到了

从项目目录:

cd c:\symfony\myProject\
c:\wampsrvr\bin\php\php7.2.4\php bin\console doctrine:schema:update --force

在Mac上, bin \ console原则:schema:update --force

但是由于WAMP的怪异,我不得不这样称呼它。这可能不是一个完美的解决方案,但我希望它会有所帮助。您可以将BAT制作到PHP,并将其放在共享的PATH中。