Я использую TBS, OpenTBS и TbsSQL уже несколько лет, всегда на PHP 5.3.x. Недавно я решил попробовать обновить до PHP 7.0, и теперь столкнулся со странной проблемой (очевидно, ошибка, но не возвращающийся текст ошибки, просто:
[TbsSql] [Ошибка]: сообщение об ошибке базы данных:Кто-нибудь еще успешно использовал TbsSQL с SQL Server (модуль tbssql_sqlserver_odbc.php, последнее обновление в 2010 году) в PHP 7?
Есть какая-то известная причина, почему это может не сработать?
Я думаю, что я понял это, поэтому я опубликую то, что я нашел, на случай, если кто-то еще столкнется с этой странной ситуацией.
Очевидно, у меня была небольшая ошибка в моем исходном коде, которая выполняла вызов $ Db-> Close (), прежде чем я по-настоящему завершил соединение.
По какой-то причине в моей старой среде (где, я думаю, единственное отличие заключалось в том, что я работал до версии PHP 7 (5.3 или, может быть, 5.6, возможно, она ведет себя одинаково в обоих случаях)), последующие вызовы используют один и тот же $ Db соединение будет успешным, хотя технически оно должно быть закрыто.
Как я уже сказал, я использовал модуль tbssql_sqlserver_odbc.php.
В любом случае, в PHP 7, когда я удалил этот некорректный вызов Close, мои модули работали как надо.
Вероятно, это странная непонятная ситуация, но, возможно, когда-нибудь она поможет кому-то еще.
Еще одно примечание: симптом, который я получил (что, вероятно, в общем случае верно для вызовов TbsSQL, я полагаю), состоит в том, что вызов (например,) GetRow будет возвращать false вместо массива с результатами, как обычно.
Других решений пока нет …