【问题标题】:Laravel migration cannot find driver when using sqlsrv database in windows在 windows 中使用 sqlsrv 数据库时,Laravel 迁移找不到驱动程序
【发布时间】:2018-08-26 05:55:32
【问题描述】:

我在我的项目中使用 sqlsrv 数据库 连接,因为我需要连接到 Microsoft SQL 数据库。

我已成功安装 sqlsrv 驱动程序,因为我可以连接到数据库以检索数据。

但是当我尝试进行 Laravel 迁移时,它会显示错误:

Illuminate\Database\QueryException  : could not find driver (SQL: select * from sysobjects where type = 'U' and name = migrations)

下面是我的 .env

DB_CONNECTION=sqlsrv
DB_HOST=**********.database.windows.net
DB_PORT=1433
DB_DATABASE=****************_4cd1_9d18_2a7d9ddbcd13
DB_USERNAME=***************_4cd1_9d18_2a7d9ddbcd13_ExternalWriter
DB_PASSWORD=***************

php.ini

extension=php_xmlrpc.dll
extension=php_xsl.dll
extension=php_pdo_sqlsrv_7_nts_x64.dll
extension=php_pdo_sqlsrv_7_nts_x86.dll
extension=php_pdo_sqlsrv_7_ts_x64.dll
extension=php_pdo_sqlsrv_7_ts_x86.dll
extension=php_pdo_sqlsrv_71_nts_x64.dll
extension=php_pdo_sqlsrv_71_nts_x86.dll
extension=php_pdo_sqlsrv_71_ts_x64.dll
extension=php_pdo_sqlsrv_71_ts_x86.dll


extension=php_sqlsrv_7_nts_x64.dll
extension=php_sqlsrv_7_nts_x86.dll
extension=php_sqlsrv_7_ts_x64.dll
extension=php_sqlsrv_7_ts_x86.dll
extension=php_sqlsrv_71_nts_x64.dll
extension=php_sqlsrv_71_nts_x86.dll
extension=php_sqlsrv_71_ts_x64.dll
extension=php_sqlsrv_71_ts_x86.dll

【问题讨论】:

  • @SagarGautam,感谢您的评论,我使用的是 Windows 操作系统,并且在我的 php.ini 中也有所需的 PDO 扩展,正如您在编辑中看到的那样。

标签: laravel migration odbc sqlsrv


【解决方案1】:

如何在xampp上使用带有PHP 7.2版本的SQL Server DLL文件

https://github.com/Microsoft/msphpsql/releases

要从 PECL 存储库下载 PHP 7.1 或更高版本的 Windows DLL,请转到 SQLSRV 或 PDO_SQLSRV PECL 页面。

https://pecl.php.net/package/sqlsrv/5.6.1/windows

https://pecl.php.net/package/pdo_sqlsrv/5.6.1/windows

注意:当您在 php.ini 文件中添加扩展 dll 文件名时,不要忘记删除“php_”前缀。例如。

extension=pdo_sqlsrv
extension=sqlsrv

不要更改您放在 /xampp/php/ext/ 目录中的实际文件名。

“7.2 线程安全 (TS) x86”对我来说适用于 'sqlsrv' 和 'pdo_sqlsrv' 扩展。

重新启动 xampp 或 apache,然后您可以在测试 php 文件中打印 phpinfo() 时看到启用的 'pdo_sqlsrv' 扩展

很难找到这个解决方案。我希望,这也会对你有所帮助。一切顺利:)

【讨论】:

    【解决方案2】:

    您可能需要将您的 PHP 版本升级到 PHP 7.1。 现在确保文件 config/database.php.env 配置正确。

    看到这个:https://laracasts.com/discuss/channels/general-discussion/connect-laravel-to-microsoft-sql

    【讨论】:

    • 我的环境已经在 PHP 7.1 上运行。 PHP 7.1.9 (cli)(构建时间:2017 年 8 月 30 日 18:34:46)
    • php_sqlsrv.dll 你需要手动安装这个扩展。在您的 php.ini 中包含 extension=php_sqlsrv.dll 并重新启动服务器。
    【解决方案3】:

    与它斗争了一段时间后找到了解决方案:

    你需要从here下载它然后解压你的php文件夹中的文件

    【讨论】:

      【解决方案4】:

      对于 Windows 10 (x64) 上的 PHP 7.4,我已经解决了以下相同的错误:

      1. 从下载驱动程序 https://www.microsoft.com/en-us/download/details.aspx?id=20098
      2. 提取存档并复制文件 php_pdo_sqlsrv_74_ts_x64.dllext 文件夹(C:\Program Files\php74\ext 在我的设置中)
      3. extension=php_pdo_sqlsrv_74_ts_x64.dll 添加到php.ini 文件中

      在我的.env 文件中,我有DB_CONNECTION=sqlsrv,所以我首先认为应该使用php_sqlsrv_74_ts_x64.dll,但它不起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-27
        • 1970-01-01
        • 2019-05-16
        • 1970-01-01
        • 1970-01-01
        • 2016-09-11
        • 2019-05-17
        • 2018-09-04
        相关资源
        最近更新 更多