sql-server - 如何将 Laravel 7 连接到 Microsoft SQL Server?

标签 sql-server laravel laravel-7

我真的很惊讶 Laravel 文档在解释如何连接到 MS SQL Server 方面是有限的。我认为有两个区域需要配置——.env 文件和 database.php。与 Laravel 7 相比,网络上的大多数示例都没有显示相同的格式。我想知道在哪里可以找到以下内容的正确信息。

  • 如何判断我的数据库在哪个端口上
  • URL 输入内容
  • 为 HOST 输入什么
  • 在测试连接时它说“未找到驱动程序”- 是说详细信息不正确还是在寻找丢失的文件?
  • 在更改 database.php 文件之前,forge 作为 env() 函数的第二个参数 - 什么是 forge???

如果有人能给我指出一个好的资源 ID,我将感激不尽!

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

和 database.php...

    'default' => env('DB_CONNECTION', 'sqlsrv'), ...
...
 'sqlsrv' => [
            'driver' => 'sqlsrv',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'test_db_1'),
            'username' => env('DB_USERNAME', 'sa'),
            'password' => env('DB_PASSWORD', 'mypassword'),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
        ],

最佳答案

您的 DB_HOST 将始终是本地主机,因此如果数据库在同一台机器上,127.0.0.1 就可以了。 TCP 端口 1433 通常是 SQL Server 默认实例使用的端口,将其设置为 DB_PORT=1433

Laravel Forge 是一种用于部署和配置 Web 应用程序的工具,可用于自动部署任何使用 PHP 服务器的 Web 应用程序。由于我们使用 .env 覆盖 config/database.php 中的值,因此无需担心“伪造”值。最后,您可能需要安装 drivers在机器上支持 PHP 和 SQL Server。

.env

DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1
DB_PORT=1433
DB_DATABASE=test_db_1
DB_USERNAME=sa
DB_PASSWORD=mypassword

config/database.php

'sqlsrv' => [
    'driver' => 'sqlsrv',
    'url' => env('DATABASE_URL'),
    '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' => '',
    'prefix_indexes' => true,
]

关于sql-server - 如何将 Laravel 7 连接到 Microsoft SQL Server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62955122/

相关文章:

sql-server - SQL Server - 如何动态确定财政年度?

sql-server - SQL Server : populate table in 15 minute intervals

javascript - 如何在隐藏字段中保存单选按钮单击的值?

laravel - 如何在 Laravel 7 中重命名项目

php - 授权 :user() is showing null in Laravel 7 particular to the controller UserController

laravel - 从资源文件夹中获取图像 - Laravel

SQL Server 2008 - 在插入/更新触发器上将值复制到另一个表?

mysql - SQl 选择出现在一组或多组中的数据

php - Browsershot 不会保存或写入我的 pdf -> 由于某些原因 Chrome 没有写入

javascript - 在 Laravel Blade 上嵌入 Checkout