将SQL Server作为第二个数据库连接到laravel

时间:2019-07-29 10:28:34

标签: sql-server laravel

我有laravel 5.8设置并可以使用MySQL。我需要连接第二个数据库(SQL Server)。

我的.env文件中包含以下内容

DB_EXT_CONNECTION=sqlsrv
DB_EXT_HOST=0.0.0.0
DB_EXT_PORT=1433
DB_EXT_DATABASE=database
DB_EXT_USERNAME=user
DB_EXT_PASSWORD=password

database.php

'sqlsrv' => [
            'driver' => 'sqlsrv',
            'url' => env(''),
            'host' => env('DB_HOST', '0.0.0.0'),
            'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'database'),
            'username' => env('DB_USERNAME', 'user'),
            'password' => env('DB_PASSWORD', 'password'),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
        ],

我正在运行xampp并已安装以下dll

extension=php_pdo_sqlsrv_73_ts.dll
extension=php_sqlsrv_73_ts.dll

我不断得到

SQLSTATE[HY000]: [Microsoft][ODBC Driver 11 for SQL Server]Protocol error in TDS stream (SQL:select * from [dbo].[t_people]) (View: C:\xampp\htdocs

我有

$users = DB::connection('sqlsrv')->table('dbo.t_people')->select('*')->get();

在我的刀片模板中。

1 个答案:

答案 0 :(得分:2)

按照在DB_DATABASE文件中编写的内容,将所有DB_EXT_DATABASE从配置文件更改为.env
尝试代替

$users = DB::connection('sqlsrv')->table('dbo.t_people')->select('*')->get();

$users = DB::connection('sqlsrv')->table('t_people')->select('*')->get();

不要在刀片文件中执行此操作,请在控制器中执行该操作。