如何将Eloquent连接到SQL Server?

时间:2018-12-18 14:51:20

标签: php sql-server laravel eloquent

我正在尝试将Eloquent连接到我的SQL Server数据库。 但是它一直让我QueryException: SQLSTATE[HY000] unrecognized msgno (localhost) (severity 11) (SQL: select top 1 * from [groups] where [groups].[id] = -6)
我尝试执行此查询并得到SQL Error [208] [S0002]
,然后将查询重写为:

SELECT TOP 1 * FROM [db].[schema].[groups] WHERE [db].[schema].[groups].[id] = -6

,它可以正确执行。之后,我认为我的配置可能不正确。
这是我的口才/胶囊配置:

[
      "driver"    => "sqlsrv",
      "host"      => "localhost",
      "database"  => "[db].[schema]",
      "username"  => "sa",
      "password"  => "dbpass",
      "charset"   => "utf8",
      "collation" => "",
      "prefix"    => "",
];

SQL Server版本:Microsoft SQL Server 2019 (CTP2.2) - 15.0.1200.24 (X64) Dec 5 2018 16:51:26 Enterprise Edition (64-bit) on Linux (KDE neon)
雄辩的版本:5.6.28
PHP版本:7.2.10

1 个答案:

答案 0 :(得分:1)

不命名您的数据库名称"[db].[schema]",

使用您实际使用的数据库的名称。 如果您的数据库名为InfinteCarrots,请使用

还要拥有主机np:DOMAINNAME\SQLEXPRESS

"driver"   => "sqlsrv",
"host"      => "np:EEBOFFICE\\SQLEXPRESS";
"database"  => "InfiniteCarrots",

这些是我目前用于在Windows服务器上与SQL Server连接的连接详细信息。 如果要连接到远程服务器,则将要使用其域名,并且将连接设置为始终使用加密。

        'driver'   => 'sqlsrv',
        'host'     => 'example.com',
        'port'     => 1433,
        'database' => 'database_name',
        'username' => 'database_user',
        'password' => 'database_password',