PHP PDO:odbc查询结果缺少某些列值

时间:2016-09-21 14:41:13

标签: php database pdo odbc vertica

我正在使用PHP PDO:ODBC使用Vertica的ODBC驱动程序连接到Vertica数据库。来自数据库的数据被加载到PHP数组中,然后通过Javascript加载到HTML表中。 我正在连接到多个数据库,并且有多个查询在我的网页上填充不同的表。

我的问题是两个不同的查询。在两个查询中,我无法从数据库中检索特定列(两个查询都不同)的数据。 e.g:

Select columnA,columnB,columnC,columnD from table1

我可以获取其他列的值,但不能获取ColumnC的值。在尝试仅获取ColumnC时,结果仍为空。

我试过" echo"数组值,但列值为空。没有错误。奇怪的是,Column的数据类型是" Varchar / Integer",类似于数据库中的其他列(其他工作正常)。

我在谷歌上搜索了很多但是在没有任何明确诊断或解决方案的情况下发现了一些类似的问题。根据其中一个解决方案,我编辑了" ODBC.defaultlrl"(处理长字段)" PHP.ini"文件的值为" odbc.defaultlrl = 65536" ,但它没有帮助。

从ODBC日志中可以看出SQL语句已成功获取数据。

我的想法是PHP没有正确处理获取的列数据,但我无法确定原因。 下面是与SQL语句的一个列相关的PHP部分,它返回为空。

try{
$dsn = "dsn_name";
$pdo = new PDO("odbc:$dsn", "user","password");
}catch (PDOException $exc) {

            // catch the connection error

            echo $exc->getMessage();
            exit();
}
$array_name = array();
$pdo4_name= $pdo->query("SELECT disk_space_used_mb from disk_table");
foreach ($pdo4_name as $row)
        {
            //$str = implode(" ",$row);
            //echo "$row<br>";
            array_push($array4_name,$row[0]);
            echo "$array4_name[0]".",";
        }

0 个答案:

没有答案