当我使用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。这个专栏没有什么特别之处。它包含文字或数字。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
我实际上对于 id 字段工作的不同类型的数据库存在完全相同的问题,但其他数据库通过pdo_odbc
返回null并且与odbc
一起工作100%。经过大量研究后,我遇到了一个类似问题的PHP Bug报告(Bug#61573),但为我找到了解决问题的方法铺平了道路。
尝试将字段输入到VARCHAR
。这对我有用。问题是pdo_odbc
不适用于odbc
可以使用的几种类型。
作为参考或者如果仍然需要请包括PHP版本和表模式,因为这些对于找出修复非常重要。 :)