几年来,我一直在使用 TBS、OpenTBS 和 TbsSQL,始终使用 PHP 5.3.x。我最近决定尝试升级到 PHP 7.0,但现在遇到了一个奇怪的问题(显然是一个错误,但没有返回错误文本,只是:
[TbsSql][错误]:数据库错误信息:
有没有其他人在 PHP 7 中成功地将 TbsSQL 与 SQL Server(tbssql_sqlserver_odbc.php 模块,最后更新于 2010 年)一起使用?
是否有一些已知的原因导致这可能不起作用?
几年来,我一直在使用 TBS、OpenTBS 和 TbsSQL,始终使用 PHP 5.3.x。我最近决定尝试升级到 PHP 7.0,但现在遇到了一个奇怪的问题(显然是一个错误,但没有返回错误文本,只是:
[TbsSql][错误]:数据库错误信息:
有没有其他人在 PHP 7 中成功地将 TbsSQL 与 SQL Server(tbssql_sqlserver_odbc.php 模块,最后更新于 2010 年)一起使用?
是否有一些已知的原因导致这可能不起作用?
我想我想通了,所以我会发布我发现的内容,以防其他人遇到这种奇怪的情况。
在我真正完成连接之前,我的原始代码中显然有一个小错误,它正在执行 $Db->Close() 调用。
出于某种原因,在我的旧环境中(我认为唯一的区别是我运行的是 PHP 7 之前的版本(5.3 或 5.6,可能两者的行为相同)),后续调用使用相同的 $Db连接会成功,即使从技术上讲,它应该已经关闭。
正如我所说,我使用的是 tbssql_sqlserver_odbc.php 模块。
无论如何,在 PHP 7 中,一旦我删除了不正确的关闭调用,我的模块就可以正常工作了。
这可能是一个奇怪的晦涩情况,但也许有一天它会帮助其他人。
进一步说明:我得到的症状(我想这可能对 TbsSQL 调用通常是正确的)是对(例如)GetRow 的调用会像往常一样返回 false 而不是带有结果的数组。