簡體   English   中英

DB2 i系列上的ZF2 Zend \\ Paginator \\ Adapter \\ DbSelect

[英]ZF2 Zend\Paginator\Adapter\DbSelect on DB2 i Series

我正在創建一個Zend APIgility應用程序REST服務,並且我的fetchAll Mapper函數出現問題。

我正在通過Windows應用服務器上的DB2 Connect連接到在i系列服務器(AS / 400)上運行的IBM DB2數據庫。

我的連接是在我的local.php中制作的:

return array(
    'db' => array(
        'driver' => 'IbmDb2',
        'database' => $database,
        'username' => $user,
        'password' => $password,
        'hostname' => $host,
        'port' => $port,
        'driver_options' => array(
            'i5_naming' => DB2_I5_NAMING_ON,
            'i5_lib' => 'LIBWEB',
        ),
    ), 
);

我的Mapper類中的fetchAll()函數是:

public function fetchAll()
{
    $select = new Select('WBRESOURCE');
    $paginatorAdapter = new DbSelect($select, $this->adapter);
    $collection = new ResourcesCollection($paginatorAdapter);
    return $collection;
}

當我點擊DbSelect時,ZF2拋出以下DB2 Connect錯誤:

"[IBM][CLI Driver][AS] SQL0204N \"*LIBL.WBRESOURCE\" is an undefined name. SQLSTATE=42704"

我不知道為什么它使用* LIBL(用戶定義的庫列表),因為我在我的連接選項中定義了庫(SCHEMA)用作LIBWEB。

提前致謝!

嘗試更改此部分:

'driver_options' => array(
    'i5_naming' => DB2_I5_NAMING_ON,
    'i5_lib' => 'LIBWEB',

改成”:

'driver_options' => array(
    'i5_naming' => DB2_I5_NAMING_OFF,    <=== change
    'i5_lib' => 'LIBWEB',

通過使用DB2_I5_NAMING_OFF,您應該獲得SQL命名模式。 使用DB2 i5命名模式會導致依賴於作業的庫列表。

有關參數的一些信息,請參閱PHP:db2-connect

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM