Вопрос снят,добрые люди открыли глаза. Упустил я при анализе следующую функции
factory которая после анализа как раз и определяет какой задействовать драйвер.
Вощим в моем случае fetchRow будет выглядеть так
# CODE ( htmlphp):
скопировать код в буфер обмена
function &fetchRow($fetchmode = MDB2_FETCHMODE_DEFAULT, $rownum = null) { if (!is_null($rownum)) { $seek = $this->seek($rownum); if (PEAR::isError($seek)) { return $seek; } } if ($fetchmode == MDB2_FETCHMODE_DEFAULT) { $fetchmode = $this->db->fetchmode; } if ($fetchmode & MDB2_FETCHMODE_ASSOC) { $row = @mysql_fetch_assoc($this->result); if (is_array($row) && $this->db->options['portability'] & MDB2_PORTABILITY_FIX_CASE ) { $row = array_change_key_case($row, $this->db->options['field_case']); } } else { $row = @mysql_fetch_row($this->result); } if (!$row) { if ($this->result === false) { $err =& $this->db->raiseError(MDB2_ERROR_NEED_MORE_DATA, null, null, 'resultset has already been freed', __FUNCTION__); return $err; } $null = null; return $null; } $mode = $this->db->options['portability'] & MDB2_PORTABILITY_EMPTY_TO_NULL; $rtrim = false; if ($this->db->options['portability'] & MDB2_PORTABILITY_RTRIM) { if (empty($this->types)) { $mode += MDB2_PORTABILITY_RTRIM; } else { $rtrim = true; } } if ($mode) { $this->db->_fixResultArrayValues($row, $mode); } if (!empty($this->types)) { $row = $this->db->datatype->convertResultRow($this->types, $row, $rtrim); } if (!empty($this->values)) { $this->_assignBindColumns($row); } if ($fetchmode === MDB2_FETCHMODE_OBJECT) { $object_class = $this->db->options['fetch_class']; if ($object_class == 'stdClass') { $row = (object) $row; } else { $row = &new $object_class($row); } } ++$this->rownum; return $row; }
|