PHP API を使用して SQL ステートメントを作成し、それをデータベース (DB2) に接続するモジュールに渡します。
私の問題: Zend_Db_Statement_DB2 モジュールを介して SQL を渡すと、静的フィールド(sales_type) が null を返します。AS400 (コマンド ライン) で SQL を直接実行すると、正常に動作します。DB2 モジュールを介して同じ SQL を渡すと、「sales_type」フィールドはすべての行で null になります。
クエリの簡略化されたバージョン:
SELECT 'discount' "sales_type", sum(sales_type1) "sales" FROM salesTable
UNION
SELECT 'promotion' "sales_type", sum(sales_type2) "sales" FROM salesTable
架空の販売で期待される/望ましい結果 (コマンドラインでも返されるもの):
sales_type sales
discount 12345
promotion 6789
SQL が DB2 モジュールを通過したときに返された結果:
sales_type sales
null 12345
null 6789
選択クエリの実行に使用される PHP コードを以下に示します。
public static function ExecuteSelect($sql)
{
$adapter = new Zend_Db_Adapter_Db2(Zend_Registry::get('config')->resources->multidb->as400)
//Prepare the SQL Statement
$sqlStmt = new Zend_Db_Statement_DB2($adapter, $sql);
$sqlStmt->execute();
$rows = $sqlStmt->fetchAll();
return $rows;
}
この問題の原因とそれを修正する方法について、誰かが私にもっと洞察を与えることができますか? また、後処理の php の回避策を探しているわけではありません。前もって感謝します!