cox Mon Mar 26 16:57:25 2001 EDT Modified files: /php4/pear/DB common.php ifx.php pgsql.php Log: ifx.php * Changed default fetchmode to ORDERED * Remove extra checks in connect and added $dns property * fetchRow() now uses fetchInto() common.php & pgsql.php style Index: php4/pear/DB/common.php diff -u php4/pear/DB/common.php:1.41 php4/pear/DB/common.php:1.42 --- php4/pear/DB/common.php:1.41 Fri Mar 23 23:00:45 2001 +++ php4/pear/DB/common.php Mon Mar 26 16:57:24 2001 @@ -51,9 +51,8 @@ function toString() { - $info = get_class($this); - - $info .= ": (phptype=" . $this->phptype . + $info = get_class($this); + $info .= ": (phptype=" . $this->phptype . ", dbsyntax=" . $this->dbsyntax . ")"; @@ -229,7 +228,7 @@ case PEAR_ERROR_TRIGGER: case PEAR_ERROR_DIE: $this->error_mode = $mode; - + if (!$options) { $this->error_level = E_USER_NOTICE; } else { @@ -322,10 +321,10 @@ for ($i = 0; $i < strlen($query); $i++) { switch ($query[$i]) { - case "?": + case '?': $types[$token++] = DB_PARAM_SCALAR; break; - case "&": + case '&': $types[$token++] = DB_PARAM_OPAQUE; break; } @@ -372,18 +371,18 @@ !sizeof($this->prepare_tokens[$stmt])) { return $this->raiseError(DB_ERROR_INVALID); } - + $qq = &$this->prepare_tokens[$stmt]; $qp = sizeof($qq) - 1; - + if ((!$data && $qp > 0) || (!is_array($data) && $qp > 1) || (is_array($data) && $qp > sizeof($data))) { return $this->raiseError(DB_ERROR_NEED_MORE_DATA); } - + $realquery = $qq[0]; - + for ($i = 0; $i < $qp; $i++) { if ($this->prepare_types[$stmt][$i] == DB_PARAM_OPAQUE) { if (is_array($data)) { @@ -629,7 +628,7 @@ if (isset($sth)) { $this->freeResult($sth); } - + return $ret; } Index: php4/pear/DB/ifx.php diff -u php4/pear/DB/ifx.php:1.3 php4/pear/DB/ifx.php:1.4 --- php4/pear/DB/ifx.php:1.3 Sun Mar 25 02:34:31 2001 +++ php4/pear/DB/ifx.php Mon Mar 26 16:57:24 2001 @@ -33,7 +33,8 @@ var $numrows; var $row; var $affected = 0; - var $fetchmode = DB_FETCHMODE_ASSOC; /* Default fetch mode */ + var $dsn = array(); + var $fetchmode = DB_FETCHMODE_ORDERED; /* Default fetch mode */ function DB_ifx() { @@ -54,7 +55,7 @@ '-1206' => DB_ERROR_INVALID_DATE, '-1209' => DB_ERROR_INVALID_DATE, '-1210' => DB_ERROR_INVALID_DATE, - '-1212' => DB_ERROR_INVALID_DATE + '-1212' => DB_ERROR_INVALID_DATE ); } @@ -67,9 +68,9 @@ * * @return int DB_OK on success, a DB error code on failure */ - function connect(&$dsn, $persistent = false) + function connect(&$dsninfo, $persistent = false) { - $dsninfo = DB::parseDSN($dsn); + $this->dsn = $dsninfo; $dbhost = $dsninfo['hostspec'] ? '@' . $dsninfo['hostspec'] : ''; $dbname = $dsninfo['database'] ? $dsninfo['database'] . $dbhost : ''; $user = $dsninfo['username'] ? $dsninfo['username'] : ''; @@ -137,33 +138,56 @@ } /** + * Fetch and return a row of data (it uses fetchInto for that) + * @param $result Informix result identifier + * @param $fetchmode format of fetched row array + * @param $rownum the absolute row number to fetch + * + * @return array a row of data, or false on error + */ + function fetchRow($result, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum=0) + { + if ($fetchmode == DB_FETCHMODE_DEFAULT) { + $fetchmode = $this->fetchmode; + } + $res = $this->fetchInto ($result, $arr, $fetchmode, $rownum); + if ($res !== DB_OK) { + return $res; + } + return $arr; + } + + /** * Fetch a row and return as array. * - * @param $result Informix result identifier - * @param $fetchmode how the resulting array should be indexed - * @param $rownum the row number to fetch + * @param $result Informix result identifier + * @param $row (reference) array where data from the row is stored + * @param $fetchmode how the resulting array should be indexed + * @param $rownum the row number to fetch * * @return int an array on success, a DB error code on failure, NULL * if there is no more data */ - function &fetchRow($result, $fetchmode, $rownum=null) + function fetchInto($res, &$row, $fetchmode, $rownum=0) { - $rownum = (!empty($rownum) && ($rownum > 0)) ? $rownum : null; + $rownum = ($rownum > 0) ? $rownum : null; if (!$row = @ifx_fetch_row($result, $rownum)) { return NULL; } switch ($fetchmode){ case DB_FETCHMODE_ASSOC: - return $row; + break; case DB_FETCHMODE_ORDERED: $i=0; foreach ($row as $key => $val) { $order[$i++] = $val; } - return $order; + $row = $order; + break; default: return $this->raiseError(DB_ERROR_UNSUPPORTED); } + return DB_OK; } function numRows($result) @@ -199,11 +223,6 @@ return $this->ifxraiseError(); } return true; - } - - function fetchInto($res, &$arr, $mode) - { - return $this->raiseError(DB_ERROR_UNSUPPORTED); } function ifxraiseError($errno = null) Index: php4/pear/DB/pgsql.php diff -u php4/pear/DB/pgsql.php:1.32 php4/pear/DB/pgsql.php:1.33 --- php4/pear/DB/pgsql.php:1.32 Mon Mar 26 15:31:50 2001 +++ php4/pear/DB/pgsql.php Mon Mar 26 16:57:24 2001 @@ -219,10 +219,10 @@ /** * Fetch and return a row of data (it uses fetchInto for that) * @param $result PostgreSQL result identifier - * @param $fetchmode format of fetched row array + * @param $fetchmode format of fetched row array * @param $rownum the absolute row number to fetch - * - * @return array a row of data, or false on error + * + * @return array a row of data, or false on error */ function fetchRow($result, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum=0) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]