【问题标题】:Connect Laravel Framework 5.6.27 and PHP 7.1.9 to SQL Server 2014将 Laravel Framework 5.6.27 和 PHP 7.1.9 连接到 SQL Server 2014
【发布时间】:2018-12-21 07:43:26
【问题描述】:

我正在使用 Laravel 5.6.27、PHP 7.1.9 和 SQL Server 2014 编写应用程序,并尝试了几种在线解决方案(我使用的版本中大多数都较低),包括来自本网站的解决方案。

基本上这是我到目前为止所做的,

将 .env 配置为:

DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydatabasename
DB_USERNAME=sa
DB_PASSWORD=mypassword

database.php 到这个:

第 16 行:

'default' => env('DB_CONNECTION', 'sqlsrv'),

第 70 行:

    'sqlsrv' => [
        'driver' => 'sqlsrv',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '1433'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'prefix' => '',
    ],

我还尝试用实际凭据替换第 70 行中的那些条目,但仍然不成功。

我还从 SQLSRV52.EXE 和 SQLSRV43.EXE 以及非官方版本中尝试了这个扩展。

extension=php_sqlsrv_71_ts_x64.dll
extension=php_pdo_sqlsrv_71_ts_x64.dll
extension=php_pdo_sqlsrv_71_ts.dll
extension=php_sqlsrv_71_ts.dll
extension=php_pdo_sqlsrv_71_ts_x86.dll
extension=php_sqlsrv_71_nts_x86.dll
extension=php_pdo_sqlsrv_7_ts_x86.dll
extension=php_pdo_sqlsrv_71_ts_x64.dll

这是我运行php artisan migrate时遇到的错误:

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

当我运行DB::connection()->getPdo();

$ php artisan tinker
Psy Shell v0.9.6 (PHP 7.1.9 — cli) by Justin Hileman
>>> DB::connection()->getPdo();
PDOException with message 'could not find driver'
>>>

此外,我不确定登录页面"SQLSTATE[HY000]: [Microsoft][ODBC Driver 17 for SQL Server]Protocol error in TDS stream (SQL: select top 1 * from [users] where [email] = test1234@gmail.com)" 中的此错误是否意味着它能够通过网络登录找到驱动程序,而只有php artisan 可以找到驱动程序。

我希望有人能启发我。

非常感谢!

【问题讨论】:

  • 您是单独尝试扩展还是一次全部尝试?
  • 这个问题你解决了吗?

标签: php sql-server laravel pdo sql-server-2014


【解决方案1】:

.env 文件中,您有端口3306 (mysql)。对于 Sql,应该是 1433

【讨论】:

    【解决方案2】:

    除了 Stefan 说的,还要使用一个视图,你刚刚放 phpinfo()。

    这只是为了检查你是否安装了sql server的pdo扩展。

    应该是这样的:

    如果没有,您应该安装该扩展程序。

    还要注意 .env 文件中的其他参数,如 DB_DATABASE、DB_USERNAME 等,因为它们优先于 database.php 中设置的值

    【讨论】:

      猜你喜欢
      • 2022-11-21
      • 2017-12-24
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多