php Laravel:在PDO对象上指定了一个不支持的属性,Ubuntu上的MSSQL

x9ybnkn6  于 2023-09-29  发布在  PHP
关注(0)|答案(4)|浏览(147)

我的Ubuntu流浪者Laravel宅基地设置已配置为连接到MSSQL。随机地,它开始对每个转到MSSQL数据库(在Windows服务器上)的查询抛出以下错误。
有什么想法吗?我在谷歌上找不到太多关于这个的信息。
我重新启动了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)
wydwbb8l

wydwbb8l1#

不支持Check this issue reportPDO::ATTR_PERSISTENT。他们也报告了PDO::ATTR_ERRMODE的问题,所以检查你的连接是否有这两个参数。

3j86kqsm

3j86kqsm2#

删除Laravel框架的vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php文件中的“PDO::ATTR_STRINGIFY_FETCHES”行解决了这个问题。
这是由于在PDO连接设置中指定了无效属性造成的。此属性允许PDO对象自动将数据类型转换为字符串。但是,此属性不应用于MSSQL数据库。
要解决这个问题,只需删除这一行。然后,重新启动Laravel项目,你应该会看到问题已经解决了。

u1ehiz5o

u1ehiz5o3#

如果有人有这个问题,这就是我的问题。
PHP版本8.1.23 pdo_sqlsrv版本5.10Beta
解决方案,工作形式我是我下载了最新的PDO驱动程序的时间张贴是5. 11. 1 +17301。从here下载

daolsyd0

daolsyd04#

对于运行PHP 8.1.23的macOS用户,也推荐使用最新的PDO驱动程序。对于我来说5.11.1+17301修复此问题https://github.com/microsoft/msphpsql/releases/download/v5.11.1/Mac-8.1.tar

相关问题