laravel — PHP OpenEdge ODBC не возвращает имена полей

Переносим наш физический сервер на ВМ и сталкиваемся с проблемой со страницей, использующей OpenEdge ODBC для сбора данных. Локальный компьютер возвращает правильные данные и формат массива. ВМ возвращает значения в виде имен полей, а также пропускает некоторые поля.

Результаты локальной машины:

[billoflading] => 36003
[Codcliente] => 785
[Confirmado] => 0
[Enviara] =>
[Exportado] => 0
[Fembarcado] => 2017-11-02
[Hembarcado] => 52856
[Linea] =>
[pull_num] => 105461
[Salesorder] => 1151086
[Tipo] =>
[Trailer] => 7327
[transmitido] => 1

Результаты ВМ:

[36003] => 36003
[785] => 785
[0] => 0
[] =>
[2017-11-02] => 2017-11-02
[52856] => 52856
[105461] => 105461
[1151086] => 1151086
[7327] => 7327
[1] => 1

Тестовая машина и виртуальная машина используют одну и ту же версию кода и драйверы OpenEdge. Версии PHP разные, но физический сервер (который все еще работает) работает на более старой версии. Проверено php.ini и они настроены точно так же. Мы используем Laravel, но все 3 версии (локальная, ВМ, & физические) одинаковы.

Фрагмент кода:

    $conn_id = odbc_connect("****","****","****", SQL_CUR_USE_ODBC);
$sql = "Select * FROM PUB.Shipper where billoflading ='36003'";

$result = odbc_do($conn_id, $sql);

echo "<pre>";

while($row = odbc_fetch_array($result)){
print_r($row);
}

echo "</pre>";

Любая помощь приветствуется!

0

Решение

использование odbc_field_name() чтобы получить имена полей в каждой позиции, например, это должно отобразить «биллфлейдинг»:

echo odbc_field_name( $conn_id, 1 );
0

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

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

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