Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PDO连接到db2时,加载CRTJOBD中定义的*LIBL(库列表)_Php_Pdo_Db2_Odbc_Ibm Midrange - Fatal编程技术网

Php 使用PDO连接到db2时,加载CRTJOBD中定义的*LIBL(库列表)

Php 使用PDO连接到db2时,加载CRTJOBD中定义的*LIBL(库列表),php,pdo,db2,odbc,ibm-midrange,Php,Pdo,Db2,Odbc,Ibm Midrange,似乎还没有人有这个问题。。。。使用db2_connect我找到了一些文档,这些文档说明了如何在连接上加载默认库列表(*LIBL),但是使用PDO什么都没有 我希望执行语句,而不总是在文件名前面指定库名。我已经创建了一个JOB DESCRIPTION来加载库,当我使用PC5250模拟器登录时,这些库都是在线的 但是,如果我使用PDO运行查询而不指定库名称,则返回以下结果: Error executing sth in testGet for AS400 SQLSTATE[42S02]: Base

似乎还没有人有这个问题。。。。使用
db2_connect
我找到了一些文档,这些文档说明了如何在连接上加载默认库列表(
*LIBL
),但是使用
PDO
什么都没有

我希望执行语句,而不总是在文件名前面指定库名。我已经创建了一个
JOB DESCRIPTION
来加载库,当我使用
PC5250
模拟器登录时,这些库都是在线的

但是,如果我使用PDO运行查询而不指定库名称,则返回以下结果:

Error executing sth in testGet for AS400 SQLSTATE[42S02]:
Base table or view not found: 0 
[IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0204 -
TESTFILE in WEB type *FILE not found.
(SQLPrepare[0] at ext\pdo_odbc\odbc_driver.c:206)

要使用库列表,您需要确保您的连接属性指定系统命名,并且我将避免设置当前模式


在不太了解PHP+PDO的情况下,stackoveflow标签wiki提供了一个很好的介绍。检查PDO是否配置为DB2fori,而不是LUW或z的正确设置。同样,检查db2_连接设置。(你为什么要用它而不是直接的ODBC?

我知道你发帖子已经有一段时间了,但是我发现了一些关于如何使用PDO驱动程序创建库列表的信息。。。看

例如,你可以这样做:

$options = [
    PDO::ATTR_PERSISTENT => true,
    PDO::ATTR_AUTOCOMMIT => true,
    PDO::I5_ATTR_DBC_SYS_NAMING => true,
    PDO::I5_ATTR_DBC_LIBL => "LIB1 LIB2 LIB3",
];

$db = new PDO("ibm:SYSTEM", "user", "password", $options);
请记住,这可能需要最新的Zend服务器(自2014年12月起)。我知道最新的东西在新的ZS 8.5中,但我不确定旧的版本

您也可以不使用库列表选项-在我有限的测试中,这似乎允许它使用工作描述中的库列表。我不确定当前的图书馆和YMMV,但我很想知道它是否适合你

此外,为了体现其价值,官方维护人员的电子邮件地址也列在上。问题也可以发送到WEB400邮件列表(),我认为参与pdo_ibm驱动程序开发的人员也在那里。

如果您谈论的是文档,那么就是说如果您在IBMi上使用pdo_ibm。我认为其他任何平台都不支持这些设置。从错误消息中,您似乎正在通过PDO_ODBC使用IBM i Access ODBC驱动程序。IBM i Access ODBC驱动程序连接到运行在QUSRSYS子系统中的QZDASOINIT预启动作业。如果您希望这些作业使用不同的作业描述,则需要使用
CHGPJE
对其进行更改:
CHGPJE-SBSD(qsrsys)PGM(QSYS/qzdasonit)JOBD(MYLIB/MYJOBD)
。如果您使用的是SSL连接,还可以更改QZDASSINIT作业。您需要结束任何现有的QZDASOINIT/QZDASSINIT作业,新的预启动作业将拾取新设置。请注意,这将影响IBM i Access驱动程序的所有ODBC、JDBC、OLEDB、.NET连接


您也可以通过DSN配置库列表,方法是在Windows上的DSN配置GUI中,在服务器选项卡下设置或设置“库列表”值

我的ISP无法直接安装
ODBC
(……)。我找到一位IBM的参考人,他说带有*LIBL的PDO还不可用。。。(
http://www-05.ibm.com/fr/events/modernisation_i_2012/S8.pdf