首页 > 解决方案 > 从 centos 托管的 laravel 应用程序连接 db2 数据库

问题描述

我正在尝试从我的 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 信息:

phpinfo

编辑:

php版本是7.3.4 centos版本是7

我还从头开始运行 php 脚本,我可以使用 db2_connection 方法从查询中获取结果。所以我很确定它与 PDO 相关:-/

标签: laraveleloquentcentosdb2db2-400

解决方案


好的,我发现了问题,我的方案和数据库错误,所以查询不正确。

在我的情况下,不需要 PDO 常量。

感谢您的回答


推荐阅读