& Quot; Компьютерная & Quot; ключ от скалярных функций сервера Sql

У меня есть проект, который использует MSSQL над pdo_dblib и freetds. Скалярные функции MS всегда возвращали свои данные в этом формате:

array(1) { [0]=> array(1) { ["computed"]=> string(3) "922" } }.

Но теперь, на одном из серверов, формат внезапно выглядит так:

array(1) { [0]=> array(1) { [""]=> string(3) "922" } }.

Таким образом, ключ в массиве стал пустым вместо «вычислено».

Я знаю, что могу изменить этот ключ в моих операторах выбора, добавив предложение «как». Тем не менее, вопрос в том, что контролирует ключ по умолчанию?

Оба сервера используют одну и ту же базу данных.

Насколько я знаю, этот «вычисляемый» ключ добавлен pdo_dblib.

Версия PHP различна на разных серверах: у версии с computed старая версия 5.3, а у версии с пустым ключом версия 5.5. Но я думаю, что у этого сервера было 5.5 уже довольно давно, а вычисленный ключ исчез только вчера. Не уверен на 100%, хотя …

0

Решение

В конце концов я узнал, что это происходит, потому что произошли изменения в этот коммит в pdo_dblib. Мотивация для этого изменения состояла в том, что это забивало память.

Следует отметить, что версия что вы получаете от pecl странно. Он «вычислен» в источнике dblib_stmt.c, но все еще не использует его.

Версия, которая работает, это та, что связана с исходниками php. Мне удалось взять исходники из php-5.3.29 \ ext \ pdo_dblib \ и собрать их с 5.6.4.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]