将PHP 5.6升级到7.1时,PHP PDO ODBC扩展存在问题

时间:2018-09-24 13:27:44

标签: php pdo odbc ignite unixodbc

我们使用PHP 5.6进行了设置。我们将Apache Ignite数据网格用于缓存。我们在unixODBC上使用PDO(pdo_odbc)在点火缓存上执行sql查询。代码如下,

$res = $this->connection()->query($selectQuery)->fetchAll(\PDO::FETCH_COLUMN);

此处,connection()函数返回一个PDO对象。 SQL具有以下格式,

SELECT stu.name FROM "StudentCache".Student AS stu WHERE stu.is_qualified = \'1\' ORDER BY name ASC LIMIT 40 OFFSET 0

该代码在PHP 5.6部署中运行良好。该代码返回列值的数组。默认情况下,FETCH_COLUMN返回第一列(在我们的例子中只有一个)。

问题

现在的问题是,当我将php升级到7.1时,同一段代码抛出了pdo异常。下面是确切的错误,

SQLSTATE[SL009]: <<Unknown error>>: 0 [unixODBC][Driver Manager]No columns were bound prior to calling SQLFetch or SQLFetchScroll (SQLFetchScroll[0] at /home/buildozer/aports/community/php7/src/php-7.1.17/ext/pdo_odbc/odbc_stmt.c:559)

但是,如果将列名替换为*,则不会出现错误。整个结果集以数组形式返回。但是,对于我们的用例,我们希望能够指定列,因为解析结果集是不必要的开销。

我一直在寻找类似的问题,但没有成功。任何帮助将不胜感激。请询问是否需要更多详细信息。

0 个答案:

没有答案