在Windows中使用sqlsrv数据库时,Laravel迁移无法找到驱动程序

时间:2018-03-17 06:07:03

标签: laravel migration odbc sqlsrv

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

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

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

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

4 个答案:

答案 0 :(得分:1)

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

请参阅此内容:https://laracasts.com/discuss/channels/general-discussion/connect-laravel-to-microsoft-sql

答案 1 :(得分: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'扩展名

enter image description here

很难找到这个解决方案。希望对您有帮助。最好的:)

答案 2 :(得分:0)

与之抗争了一段时间后找到了解决方法:

您需要从here下载它,然后将文件提取到您的php文件夹中

答案 3 :(得分:0)

对于 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 但它没有用。