我的 Ubuntu vagrant Laravel Homestead 设置已配置为连接到 MSSQL。随机地,它开始在进入 MSSQL 数据库(在 Windows 服务器上)的每个查询上抛出以下错误。
有什么想法吗?我在 Google 上找不到太多关于 re:this 的信息。
我重新启动了 PHP 并确认 SQLSRV 模块已加载。
SQLSTATE[IMSSP]: An unsupported attribute was designated on the PDO object. (SQL: select top 10 * from [orders] where [ordertype] = SO order by [orderdate] desc)
删除Laravel框架的vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php文件中的“PDO::ATTR_STRINGIFY_FETCHES”行解决了问题。
这是由于在 PDO 连接设置中指定了无效属性造成的。该属性允许 PDO 对象自动将数据类型转换为字符串。但是,此属性不应与 MSSQL 数据库一起使用。
要解决该问题,只需删除此行即可。然后,重新启动您的 Laravel 项目,您应该会看到问题已解决。