[英]Zend_Table_Db and Zend_Paginator and 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.