我正在尝试从laravel应用程序(5.8)连接到db2数据库服务器(iseries ibm)。该应用程序在centos linux服务器上运行。
我发现db2不在此处列出的4种数据库类型中:https://laravel.com/docs/5.8/database#introduction。
所以我尝试使用该软件包https://github.com/cooperl22/laravel-db2,但出现以下错误:
Undefined class constant 'I5_ATTR_DBC_SYS_NAMING'
我有5个常量的错误: PDO :: I5_ATTR_DBC_SYS_NAMING,PDO :: I5_ATTR_COMMIT,PDO :: I5_ATTR_JOB_SORT,PDO :: I5_ATTR_DBC_LIBL,PDO :: I5_ATTR_DBC_CURLIB。
此外,如果我评论这些常量,则会出现此错误:
`Syntax error: -104 [IBM][CLI Driver][AS] SQL0104N An unexpected token "<END-OF-STATEMENT>" was found following "". Expected tokens may include: "( + - ? : DAY INF NAN RID ROW RRN". SQLSTATE=42601 (SQLNumResultCols[-104] at /root/PDO_IBM-1.3.6/ibm_driver.c:153) (SQL: select * from )`
我正在使用db2_ibmi_ibm
驱动程序。
这是链接到驱动程序的我的php信息:
已编辑:
php版本是7.3.4 centos版本是7
我也从头开始运行了一个php脚本,并且可以使用db2_connection方法从查询中获取结果。所以我很确定这与PDO有关:-/
答案 0 :(得分:0)
好的,我发现了这个问题,我的方案和数据库错误,所以查询不正确。
在我的情况下,不需要PDO常量。
感谢您的回答