Я пытаюсь подключить 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
и это выполнено правильно. После этого я думаю, что моя конфигурация может быть неправильной.
Вот моя конфигурация Eloquent / Capsule:
[
"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
Не называйте имя вашей базы данных "[db].[schema]",
Используйте имя базы данных, которую вы на самом деле используете.
Если ваша база данных называется InfinteCarrots, используйте
Также есть хозяин np:DOMAINNAME\SQLEXPRESS
"driver" => "sqlsrv",
"host" => "np:EEBOFFICE\\SQLEXPRESS";
"database" => "InfiniteCarrots",
Это детали подключения, которые я использую в данный момент для подключения к серверу SQL на сервере Windows.
Если вы подключаетесь к удаленному серверу, вы можете использовать для него доменное имя и настроить соединение на использование шифрования всегда.
'driver' => 'sqlsrv',
'host' => 'example.com',
'port' => 1433,
'database' => 'database_name',
'username' => 'database_user',
'password' => 'database_password',
Других решений пока нет …