cox Tue Mar 27 16:54:05 2001 EDT Modified files: /php4/pear/DB ibase.php oci8.php Log: oci8.php * added not capable for fetchInto when $rownum !== null (feature not supported yet) * fix fetchInto to return null on no more data * Removed extra checks in connect() ibase.php * removed extra checks in connect() and return error on no connection * fetchInto now returns NULL on no more data (not tested) * added not capable for fetchInto when $rownum !== null (feature not supported yet) * changed tabs to spaces Please note that this extension seems to be very old.
Index: php4/pear/DB/ibase.php diff -u php4/pear/DB/ibase.php:1.17 php4/pear/DB/ibase.php:1.18 --- php4/pear/DB/ibase.php:1.17 Mon Feb 19 04:22:26 2001 +++ php4/pear/DB/ibase.php Tue Mar 27 16:54:05 2001 @@ -16,7 +16,7 @@ // | Authors: Sterling Hughes <[EMAIL PROTECTED]> | // +----------------------------------------------------------------------+ // -// $Id: ibase.php,v 1.17 2001/02/19 12:22:26 ssb Exp $ +// $Id: ibase.php,v 1.18 2001/03/28 00:54:05 cox Exp $ // // Database independent query interface definition for PHP's Interbase // extension. @@ -26,172 +26,173 @@ class DB_ibase extends DB_common { - var $connection; - var $phptype, $dbsyntax; + var $connection; + var $phptype, $dbsyntax; var $autocommit = 1; - var $manip_query = array(); + var $manip_query = array(); - function DB_ibase() + function DB_ibase() { $this->DB_common(); - $this->phptype = 'ibase'; - $this->dbsyntax = 'ibase'; - $this->features = array( - 'prepare' => true, - 'pconnect' => true, - 'transactions' => true - ); - } - - function connect($dsn, $persistant = false) - { - if(is_array($dsn)) { - $dsninfo = &$dsn; - } else { - $dsninfo = DB::parseDSN($dsn); - } - if (!$dsninfo || !$dsninfo['phptype']) { - return $this->raiseError("invalid data source name"); - } + $this->phptype = 'ibase'; + $this->dbsyntax = 'ibase'; + $this->features = array( + 'prepare' => true, + 'pconnect' => true, + 'transactions' => true + ); + } + + function connect($dsninfo, $persistent = false) + { $this->dsn = $dsninfo; - $user = $dsninfo['username']; - $pw = $dsninfo['password']; - $dbhost = $dsninfo['hostspec'] ? - ($dsninfo['hostspec'] . ':/' . $dsninfo['database']) : - $dsninfo['database']; - $connect_function = $persistent ? 'ibase_pconnect' : 'ibase_connect'; - if ($dbhost && $user && $pw) { - $conn = $connect_function($dbhost, $user, $pw); - } elseif ($dbhost && $user) { - $conn = $connect_function($dbhost, $user); - } elseif ($dbhost) { - $conn = $connect_function($dbhost); - } else { - return $this->raiseError("no host, user or password"); - } - $this->connection = $conn; - return DB_OK; - } + $user = $dsninfo['username']; + $pw = $dsninfo['password']; + $dbhost = $dsninfo['hostspec'] ? + ($dsninfo['hostspec'] . ':/' . $dsninfo['database']) : + $dsninfo['database']; + $connect_function = $persistent ? 'ibase_pconnect' : 'ibase_connect'; + if ($dbhost && $user && $pw) { + $conn = $connect_function($dbhost, $user, $pw); + } elseif ($dbhost && $user) { + $conn = $connect_function($dbhost, $user); + } elseif ($dbhost) { + $conn = $connect_function($dbhost); + } else { + return $this->raiseError("no host, user or password"); + } + if (!$conn) { + return $this->raiseError(DB_ERROR_CONNECT_FAILED); + } + $this->connection = $conn; + return DB_OK; + } - function disconnect() + function disconnect() { - return @ibase_close($this->connection); - } + return @ibase_close($this->connection); + } - function simpleQuery($query) + function simpleQuery($query) { - $this->last_query = $query; + $this->last_query = $query; $query = $this->modifyQuery($query); - $result = @ibase_query($this->connection, $query); - if (!$result) { - return $this->raiseError(); - } + $result = @ibase_query($this->connection, $query); + if (!$result) { + return $this->raiseError(); + } if ($this->autocommit) { ibase_commit($this->connection); } - // Determine which queries that should return data, and which - // should return an error code only. + // Determine which queries that should return data, and which + // should return an error code only. return DB::isManip($query) ? DB_OK : $result; - } + } function &fetchRow($result, $fetchmode=DB_FETCHMODE_DEFAULT) { - if ($fetchmode == DB_FETCHMODE_DEFAULT) { - $fetchmode = $this->fetchmode; - } - if ($fetchmode & DB_FETCHMODE_ASSOC) { - $row = (array)ibase_fetch_object($result); - } else { - $row = ibase_fetch_row($result); - } - if (!$row) { - if ($errmsg = ibase_errmsg()) { - return $this->raiseError($errmsg); - } else { - return null; - } - } - - return $row; - } - - function fetchInto($result, &$ar, $fetchmode=DB_FETCHMODE_DEFAULT) - { - if ($fetchmode == DB_FETCHMODE_DEFAULT) { - $fetchmode = $this->fetchmode; - } - if ($fetchmode & DB_FETCHMODE_ASSOC) { - return $this->raiseError(DB_ERROR_NOT_CAPABLE); - } else { - $ar = ibase_fetch_row($result); - } - if (!$ar) { - return $this->raiseError(); - } - return DB_OK; - } - - function freeResult() - { - return $this->raiseError(DB_ERROR_NOT_CAPABLE); - } - - function freeQuery($query) - { - ibase_free_query($query); - return true; - } - - function numCols($result) - { - $cols = ibase_num_fields($result); - if (!$cols) { - return $this->raiseError(); - } - return $cols; - } + if ($fetchmode == DB_FETCHMODE_DEFAULT) { + $fetchmode = $this->fetchmode; + } + if ($fetchmode & DB_FETCHMODE_ASSOC) { + $row = (array)ibase_fetch_object($result); + } else { + $row = ibase_fetch_row($result); + } + if (!$row) { + if ($errmsg = ibase_errmsg()) { + return $this->raiseError($errmsg); + } else { + return null; + } + } + return $row; + } - function prepare($query) + function fetchInto($result, &$ar, $fetchmode=DB_FETCHMODE_DEFAULT, $rownum=null) { - $this->last_query = $query; + if ($rownum !== NULL) { + return $this->raiseError(DB_ERROR_NOT_CAPABLE); + } + if ($fetchmode == DB_FETCHMODE_DEFAULT) { + $fetchmode = $this->fetchmode; + } + if ($fetchmode & DB_FETCHMODE_ASSOC) { + return $this->raiseError(DB_ERROR_NOT_CAPABLE); + } else { + $ar = ibase_fetch_row($result); + } + if (!$ar) { + if ($errmsg = ibase_errmsg()) { + return $this->raiseError($errmsg); + } else { + return null; + } + } + return DB_OK; + } + + function freeResult() + { + return $this->raiseError(DB_ERROR_NOT_CAPABLE); + } + + function freeQuery($query) + { + ibase_free_query($query); + return true; + } + + function numCols($result) + { + $cols = ibase_num_fields($result); + if (!$cols) { + return $this->raiseError(); + } + return $cols; + } + + function prepare($query) + { + $this->last_query = $query; $query = $this->modifyQuery($query); $stmt = ibase_prepare($query); $this->manip_query[(int)$stmt] = DB::isManip($query); - return $stmt; - } + return $stmt; + } - function execute($stmt, $data = false) + function execute($stmt, $data = false) { - $result = ibase_execute($stmt, $data); - if (!$result) { - return $this->raiseError(); - } + $result = ibase_execute($stmt, $data); + if (!$result) { + return $this->raiseError(); + } if ($this->autocommit) { ibase_commit($this->connection); } - return DB::isManip($this->manip_query[(int)$stmt]) ? DB_OK : $result; - } + return DB::isManip($this->manip_query[(int)$stmt]) ? DB_OK : $result; + } - function autoCommit($onoff = false) + function autoCommit($onoff = false) { $this->autocommit = $onoff ? 1 : 0; - return DB_OK; - } + return DB_OK; + } - function commit() + function commit() { - return ibase_commit($this->connection); - } + return ibase_commit($this->connection); + } - function rollback($trans_number) + function rollback($trans_number) { - return ibase_rollback($this->connection, $trans_number); - } + return ibase_rollback($this->connection, $trans_number); + } - function transactionInit($trans_args = 0) + function transactionInit($trans_args = 0) { - return $trans_args ? ibase_trans($trans_args, $this->connection) : ibase_trans(); - } + return $trans_args ? ibase_trans($trans_args, $this->connection) : +ibase_trans(); + } } /* Index: php4/pear/DB/oci8.php diff -u php4/pear/DB/oci8.php:1.21 php4/pear/DB/oci8.php:1.22 --- php4/pear/DB/oci8.php:1.21 Thu Mar 22 17:15:06 2001 +++ php4/pear/DB/oci8.php Tue Mar 27 16:54:05 2001 @@ -80,16 +80,8 @@ * * @return int DB_OK on success, a DB error code on failure */ - function connect($dsn, $persistent = false) + function connect($dsninfo, $persistent = false) { - if (is_array($dsn)) { - $dsninfo = &$dsn; - } else { - $dsninfo = DB::parseDSN($dsn); - } - if (!$dsninfo || !$dsninfo['phptype']) { - return $this->raiseError(DB_ERROR_INVALID_DSN); - } $this->dsn = $dsninfo; $user = $dsninfo['username']; $pw = $dsninfo['password']; @@ -186,7 +178,7 @@ } return $row; } - + // }}} // {{{ fetchInto() @@ -196,11 +188,15 @@ * @param $result oci8 result identifier * @param $arr (reference) array where data from the row is stored * @param $fetchmode how the array data should be indexed + * @param $rownum the row number to fetch (not yet supported) * * @return int DB_OK on success, a DB error code on failure */ - function fetchInto($result, &$arr, $fetchmode = DB_FETCHMODE_DEFAULT) + function fetchInto($result, &$arr, $fetchmode = DB_FETCHMODE_DEFAULT, +$rownum=NULL) { + if ($rownum !== NULL) { + return $this->raiseError(DB_ERROR_NOT_CAPABLE); + } if ($fetchmode == DB_FETCHMODE_DEFAULT) { $fetchmode = $this->fetchmode; } @@ -209,8 +205,8 @@ } else { $moredata = @OCIFetchInto($result,$arr,OCI_RETURN_NULLS+OCI_RETURN_LOBS); } - if (!($arr && $moredata)) { - return $this->oci8RaiseError($result); + if (!$moredata) { + return NULL; } return DB_OK; } @@ -236,7 +232,7 @@ unset($this->prepare_tokens[$result]); unset($this->prepare_types[$result]); unset($this->manip_query[$result]); - return true; + return true; } // }}} @@ -407,7 +403,7 @@ /** * Enable/disable automatic commits - * + * * @param $onoff true/false whether to autocommit */ function autoCommit($onoff = false) @@ -502,7 +498,7 @@ * @access public * * @param $seq_name the name of the sequence - * + * * @param $ondemand whether to create the sequence table on demand * (default is true) * @@ -531,7 +527,7 @@ $arr = $result->fetchRow(DB_FETCHMODE_ORDERED); return $arr[0]; } - + // }}} // {{{ createSequence()
-- 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]