Php ADOdb和空字段

Php ADOdb和空字段,php,sql-server,adodb,Php,Sql Server,Adodb,我正在使用最新版本的ADOdb PHP5.18在SQL Server数据库中进行一些查询 我以这种方式选择数据: $rS = $localDb->Execute($sql); if (!$rS) { echo "Error: " . $localDb->ErrorMsg() . "\n"; } else { $tot = $rS->RecordCount(); echo " " . $tot . " record da inserire...\n"; whil

我正在使用最新版本的ADOdb PHP5.18在SQL Server数据库中进行一些查询

我以这种方式选择数据:

$rS = $localDb->Execute($sql);
if (!$rS) {
  echo "Error: " . $localDb->ErrorMsg() . "\n";
}
else {
  $tot = $rS->RecordCount();
  echo " " . $tot . " record da inserire...\n";

  while (!$rS->EOF) {
    $id = $rS->fields['id'];
    $field1 = $rS->fields['field1'];
    $field2 = $rS->fields['field2'];
    $rS->MoveNext();
  }
}
所有这些都可以工作,我可以获取数据,但是当数据库当前行中的字段为NULL时,$rS->fields中的相对元素具有相同字段的最后一个非NULL行的值

这是一个大问题,因为我在当前行中没有正确的数据

我试图寻找这个问题,但没有找到任何解决办法


您能帮我吗?

查看adodb5/adodb.inc.php并找到GetRowAssoc函数。它应该是以下定义:

function GetRowAssoc($upper=ADODB_ASSOC_CASE_UPPER)
{
    $record = array();
    if (!$this->bind) {
        $this->GetAssocKeys($upper);
    }
    foreach($this->bind as $k => $v) {
        if( array_key_exists( $v, $this->fields ) ) {
            $record[$k] = $this->fields[$v];
        } elseif( array_key_exists( $k, $this->fields ) ) {
            $record[$k] = $this->fields[$k];
        } else {
            # This should not happen... trigger error ?
            $record[$k] = null;
        }
    }
    return $record;
}

我现在意识到5.19已经发布,这是一个在这个版本中修复的错误:*adodb:GetRowAssoc将根据需要返回null。看见