PDO:选择将最后一列提取为NULL

时间:2014-03-05 12:31:51

标签: php pdo odbc velocis-rds

当我使用PDO从ODBC中选择数据时(在PHP中),某些列被提取为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。这个专栏没有什么特别之处。它包含文字或数字。

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

1 个答案:

答案 0 :(得分:0)

我实际上对于 id 字段工作的不同类型的数据库存在完全相同的问题,但其他数据库通过pdo_odbc返回null并且与odbc一起工作100%。经过大量研究后,我遇到了一个类似问题的PHP Bug报告(Bug#61573),但为我找到了解决问题的方法铺平了道路。


尝试将字段输入到VARCHAR。这对我有用。问题是pdo_odbc不适用于odbc可以使用的几种类型。


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