2017-11-06 8 views
0

物理サーバをVMに移行し、OpenEdge ODBCを使用してデータを取得するページで問題が発生しています。ローカルマシンが正しいデータと配列形式を返しています。 VMはフィールド名として値を返し、いくつかのフィールドも欠落しています。PHP 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 

VM結果:

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

テストマシンとVMは、コードとOpenEdgeドライバの同じ正確なバージョンを使用しています。 PHPのバージョンは異なりますが、(動作する)物理サーバは古いバージョンです。チェックされたphp.iniとそれらはまったく同じように設定されています。私たちはLaravelを使用していますが、3つのバージョン(ローカル、VM、&物理)はすべて同じです。

コードスニペット:すべてのヘルプは高く評価され

$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()を使用すると、各位置のフィールド名を取得できます。 「billoflading」と表示されるはずです。

echo odbc_field_name($conn_id, 1); 
+0

いいえ運がありません。フィールド名が値として表示されています。エイリアスも試しましたが、フィールド名も値にとどまりました:( – yeowoh

関連する問題