0

当我使用 PDO(在 PHP 中)从 ODBC 中选择数据时,某些列被提取为 NULL,但在数据库中存在数据。在我使用 odbc_* 函数执行相同查询的地方,它工作正常。

这是我使用的代码

$sql = "SELECT * FROM table WHERE rowid = 123456";
$connection = odbc_connect("Velocis RDS", $usr, $pwd);
$result = odbc_exec($connection, $sql);
while ($data = odbc_fetch_array($result)) {
  print_r($data);
}

有了这个,所有的列都被正确提取:

$connection = new PDO("odbc:Velocis RDS", $usr, $pwd);
$stmt = $dbConn->prepare("SELECT * FROM table WHERE rowid = 123456");
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
print_r($stmt->fetchAll());

使用此代码,最后 9 列被提取为 NULL。此列没有什么特别之处。它包含文本或数字。

任何帮助,将不胜感激。提前致谢。

4

1 回答 1

0

实际上,我在使用id字段的不同类型的数据库中遇到了完全相同的问题,但其他数据库通过返回 nullpdo_odbc并且 100% 使用odbc. 经过大量研究后,我遇到了一个具有类似问题的 PHP 错误报告 (Bug#61573),但为我找出解决方案铺平了道路。


尝试将字段类型转换为VARCHAR. 这对我有用。问题是它pdo_odbc不适用于odbc可以使用的几种类型。


作为参考或者如果仍然需要,请包括 PHP 版本和表模式,因为这些对于找出修复很重要。:)

于 2014-04-30T18:08:09.323 回答