1

我正在尝试连接到 SQL Server 2000 中的数据库,但出现错误

找不到驱动程序

当我使用 pdo_sqlsrv 时。但是如果我使用 sqlsrv 我会得到一个错误

试图从命名空间“Doctrine\DBAL\Driver\SQLSrv”调用函数“sqlsrv_configure”。

这是我的 config.yml

配置.yml

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                dbname: "%database_name%"
                user: "%database_user%"
                password: "%database_password%"
                host: "%database_host%"
                driver:   pdo_mysql
                charset:  utf8mb4
                default_table_options:
                    charset: utf8mb4
                    collate: utf8mb4_unicode_ci
            connection2:
                dbname: "%database_name2%"
                user: "%database_user2%"
                password: "%database_password2%"
                host: "%database_host2%"
                driver:  pdo_sqlsrv
                #driver:  sqlsrv  i've also tried this
                #charset:  utf8mb4
                default_table_options:
                    charset: utf8mb4
                    collate: utf8mb4_unicode_ci

有人知道我为什么会收到这些错误吗?

4

2 回答 2

5

如果找不到函数 sqlsrv_configure,则没有安装 sqlsrv 扩展。可以在此处的官方 Microsoft 存储库中找到它。

php -m您可以通过在终端中运行命令来检查是否已安装扩展程序。请注意,如果您在独立服务器上运行 Symfony(例如 MAMP、XAMP 或任何其他使用非 CLI 版本的 PHP),那么 CLI 和独立服务器使用的扩展可能会有所不同。

您可以通过转到 Symfony 中的分析器(/_profiler默认情况下)并单击Configuration菜单项下的“查看完整的 PHP 配置”链接来测试这一点。这将打开phpinfo()屏幕。在那里寻找sqlsrvpdo_sqlsrv扩展名。

编辑

再次查看Doctrine 文档,似乎pdo_sqlsrv会导致问题。教义建议使用sqlsrv.

pdo_sqlsrv:使用pdo_sqlsrvPDO的 Microsoft SQL Server 驱动程序请注意,此驱动程序在我们的测试中引起了问题。如果可能,首选 sqlsrv 驱动程序。

(重点不是我的)

于 2017-08-03T09:38:23.477 回答
0

你能试一下吗:

driver:        pdo_sqlsrv
database_port: 1433

不确定这是否可行,但请尝试一下。

于 2017-07-19T17:07:27.430 回答