» Version | » Information |
---|---|
2024-04-15 stable |
|
2024-01-17 stable |
|
2024-01-16 stable |
|
2021-08-10 stable |
|
2020-04-19 stable |
|
2018-12-05 stable |
|
2015-11-24 stable |
|
2015-11-23 stable |
|
2015-11-20 stable |
|
2014-11-27 stable |
|
2014-11-20 stable |
|
2014-11-20 stable |
|
2011-08-27 stable |
|
2010-12-24 beta |
|
2007-11-27 beta |
|
2007-09-21 stable |
|
2007-06-29 stable |
|
2007-03-28 stable |
|
2007-03-20 stable |
|
2007-02-06 stable |
|
2007-01-28 stable |
|
2007-01-21 beta |
|
2007-01-12 beta |
|
2007-01-07 stable |
|
2005-04-11 stable |
|
2005-03-29 stable |
|
2005-03-07 stable |
|
2005-03-04 stable |
|
2005-03-03 stable |
|
2005-03-01 stable |
|
2005-02-28 stable |
|
2005-02-22 beta |
|
2004-10-04 stable |
|
2004-09-25 stable |
|
2004-09-21 stable |
|
2004-07-13 stable |
|
2004-04-30 stable |
|
2004-04-29 stable |
|
2004-04-07 stable |
|
2004-03-13 stable |
|
2004-02-19 stable |
|
2004-02-11 stable |
|
2004-02-06 beta |
|
2004-02-04 beta |
|
2004-01-30 beta |
|
2004-01-27 beta |
|
1.6.0RC1 |
Easy InstallNot sure? Get more info. pear install DB-1.6.0RC1 Pyrus InstallTry PEAR2's installer, Pyrus. php pyrus.phar install pear/DB-1.6.0RC1 Release date: 2004-01-25 14:41 UTC Release state: beta Release uploaded by: danielc Changelog: == GENERAL NOTES ============ * PEAR DB now requires PHP to be at version 4.2.0 or greater. * The version numbers has been increased to 1.6.0 due to major changes, thereby skipping over a final 1.5.0 release. * All changes by danielc unless otherwise noted. == DB.php and common.php ==== * Make the $options argument in connect() default to an array to improve documentation. * Add strtolower() to all get_class() calls, creating PHP 4/5 compatibility. * Speed up connect() a bit by doing one is_array() up front. * factory() now has $options parameter and the error reporting / setOption() code related thereto. Bug 25. * Have DB_result::tableInfo() -- which has been long deprecated -- forward a result object rather than a result resource. * Removed deprecated constants DB_WARNING and DB_WARNING_READ_ONLY * Add DB_FETCHMODE_OBJECT support to fetchAssoc(). Bug 232. **ONLY WORKS IN PHP 4.** * var $phptype was misnamed $type. * Save a couple steps in constructor by setting values in var declarations. * Allow '.' in sequence names. Bug 135. * Speed getRow() a tad more by making default $params an array. * getRow() drop general checks/settype by more efficient specific checks earlier. Fix docblock param order. * trim() $nativecode because some error strings have line breaks at end. * Fix broken fold marks. (ssb) * Add 'ssl' connection option to $options/setOption(). * Fix ; to : at end of case statement. Bug 617. * REFINE PREPARE/EXECUTE EMULATION + Allow scalars in addition to arrays. + prepare() now allows placeholder characters to be escaped so they can be used in literals. Bug 31. + Allow associative arrays to be passed to execute() and (perhaps speed things) up by using foreach instead of for. Bug 585. + Fix wrong splitting by \ in prepare(). Bug 45. (cox) + Use fopen($file, 'rb') to make sure we get binary data properly on Windows platforms. (chagenbu) + Eliminate unnecessary variable assignments. + Move error checking up front so it doesn't need to be repeated in for loop. + Reorganize conditional statements to reduce need for executing them. + Raise DB_ERROR_ACCESS_VIOLATION on fopen() failure. + Use fread() instead of while fgets(). + Adjust docblocks to match changes and related realities. == All Drivers ============== * Whitespace cleanup. * Docblock enhancements. * Change double quotes to single quotes for minor efficiency gain on strings that don't need to be evaluated. * quoteSmart() and escapeSimple() methods introduced. * quote() and quoteString() are now officially deprecated. * REWORK PORTABILITY FEATURES + Added new 'portability' option. + The 'optimize' option is now deprecated, but full backwards compatibility is built in. + Each portability feature can be turned on and off. + New portability feature allows right trimming database output. + All DBMS's can now lowercase field names. Bug 397. + All tableInfo() methods now have the ability to lowercase table and field names. + Portability features enabled/disabled by passing bitwised constants to DB_common::setOption(). + Enhanced docblocks for related methods. + Adjusted tests accordingly. + This system is documented in the DB_common::setOption() method. * Dropped freeResult() as a way for freeing prepared queries (cox): $res = $dbh->prepare(..); $dbh->freeResult($res); (that was never documented/used anyways) Use $dbh->freePrepared($res) instead == fbsql ==================== * Fix mem leaks in some drivers even when free() is called. (cox) * TABLEINFO() CLEAN UP / STANDARDIZATION + Can now be passsed a DB_result object, which has become the primary means of calling this method. + Change empty($mode) to is_null($mode) which has lower overhead. + Create $got_string variable so don't need to call is_string() over and over. + Centralize $result validation check. == ibase ==================== * Fix mem leaks in some drivers even when free() is called. (cox) * TABLEINFO() CLEAN UP / STANDARDIZATION + Can now be passsed a DB_result object, which has become the primary means of calling this method. + Suppress output from ibase_query() via @. + Create limit via 'WHERE 1=0' in the query used when table names submitted. + Change empty($mode) to is_null($mode) which has lower overhead. + Create $got_string variable so don't need to call is_string() over and over. + Centralize $result validation check. * REFINE PREPARE/EXECUTE + prepare() now allows placeholder characters to be escaped so they can be used in literals. Bug 31. + Allow associative arrays to be passed to execute() and (perhaps speed things) up by using foreach instead of for. Bug 585. + Allow ! as placeholder in prepare(). Bug 91. + Fix execute() always requiring placeholders. + Use fopen($file, 'rb') to make sure we get binary data properly on Windows platforms. + Raise DB_ERROR_ACCESS_VIOLATION on fopen() failure. + Do type checking before entering loop to save processing. + Speed up by using fread(filesize()) in prepare() instead of doing fread() in loop. + Document ability to accept both arrays and scalars. == ifx ====================== * Fix capitalization of ifxRaiseError(). Thanks peterwb. * Add return for 'tables' in getSpecialQuery() to make getListOf('tables') work. From peterwb. * Fix mem leaks in some drivers even when free() is called. (cox) == msql ===================== * Fix mem leaks in some drivers even when free() is called. (cox) == mssql ==================== * Add @ to mssql_query() in tableInfo(). * Made possible to call _mssql_field_flags() multiple times with different table names * Add 8134, 'Divide by zero error encountered' to errormap. But doesn't pass errormap tests due PHP not reporting it as an error. See PHP bug 26799. * Fix mem leaks in some drivers even when free() is called. (cox) * TABLEINFO() CLEAN UP / STANDARDIZATION + Can now be passsed a DB_result object, which has become the primary means of calling this method. + Flags now space-delimited rather than comma-delimited. + _mssql_field_flags() revamped (contributed by j_barthel) + _mssql_field_flags() was complaining about invalid indexes for $val. The keys returned are lower case but the keys used in the script were upper. Added array_change_key_case() call and changed case of keys in the script. + Multi-column indexes now convey 'multiple_key' on more than just the first column. + Create limit via 'WHERE 1=0' in the query used when table names submitted. + Change empty($mode) to is_null($mode) which has lower overhead. + Create $got_string variable so don't need to call is_string() over and over. + Centralize $result validation check. * FIX ERROR HANDLING + errorCode() mistakenly returned an mssql error code rather than a PEAR DB code. Fixed. + Added errorNative() method which returns an mssql error code. + Have mssqlRaiseError() take advantage of the new/fixed methods. == mysql ==================== * Fix mem leaks in some drivers even when free() is called. (cox) * TABLEINFO() CLEAN UP / STANDARDIZATION + Can now be passsed a DB_result object, which has become the primary means of calling this method. + Change empty($mode) to is_null($mode) which has lower overhead. + Create $got_string variable so don't need to call is_string() over and over. + Centralize $result validation check. == oci8 ===================== * Make modifyLimitQuery() work by properly incrementing $from. Bug 474. * Remove ocifreestatement() from freeResult() so can get results from SELECT queries. Bug 229. PHP Bug 25747. * Add errorcode_map for ORA-00921 'unexpected end of SQL command.' oci8 now passes all errormap tests. * Suppress stdout by placing @ in front of several OCI*() calls. Bug 77. * Return by reference oci8RaiseError(). * Fix mem leaks in some drivers even when free() is called. (cox) * TABLEINFO() CLEAN UP / STANDARDIZATION + Can now be passsed a DB_result object, which has become the primary means of calling this method. + When analyzing a query result, looking up the table name via USER_TAB_COLUMNS fails when more than one table in the schema uses the column name in question. Drop this 'feature.' + Fix bug introduced in August that passed OCIColumnName() to 'type'. + 'type' is different for each DBMS, so no need to lowercase it. + Change $count to $i for standardization. + Suppress output from oci*() calls via @. + Check for 'portability' once per column. + Reformat $q_fields query to make it more readable and not call unneeded fields. + Place $q_fields in $this->last_query to clarify debuging. + Change empty($mode) to is_null($mode) which has lower overhead. + Create $got_string variable so don't need to call is_string() over and over. * REFINE PREPARE/EXECUTE + prepare() now allows placeholder characters to be escaped so they can be used in literals. Bug 31. + Allow associative arrays to be passed to execute() and (perhaps speed things) up by using foreach instead of for. Bug 585. + Allow ! as placeholder in prepare(). Bug 91. + Use fopen($file, 'rb') to make sure we get binary data properly on Windows platforms. + Fix OCI8 Execute always requires placeholders. Bug 72. (cox) + Fix OCI8 Prepare() does not raise SQL parse error. Bug 73. (cox) + Raise DB_ERROR_ACCESS_VIOLATION on fopen() failure. + Speed up by using fread(filesize()) in prepare() instead of doing fread() in loop. + Document ability to accept both arrays and scalars. + Do type checking before entering loop to save processing. == odbc ===================== * Fix mem leaks in some drivers even when free() is called. (cox) == pgsql ==================== * In tableInfo() flag's default value component: 1) run values through rawurlencode() because spaces would interfere with space separation of the flags list and 2) remove ::datatype from the end since it's already stated in 'type'. * Allow EXPLAIN in simpleQuery() and merge the method's three preg tests into one. Bug 593. * Eliminate potential for undefined variable in _pgFieldFlags(). * Add several items to errorcode_map. pgsql now passes all errormap tests. * Make error-matching regular expressions case-insensitive. (chagenbu) * Allow for postgres sockets in a non-standard location. Bug 339. (chagenbu) * Fix mem leaks in some drivers even when free() is called. (cox) * Free result fixes. Bug 25550. (cox) * TABLEINFO() CLEAN UP / STANDARDIZATION + Can now be passsed a DB_result object, which has become the primary means of calling this method. + Change flags from 'term' to 'term_key' (eg 'unique' is now 'unique_key'). + If a key is primary, just say 'primary_key', not that and 'unique_key'. + Suppress output from pg_exec() via @. + Change empty($mode) to is_null($mode) which has lower overhead. + Create $got_string variable so don't need to call is_string() over and over. + Centralize $result validation check. == sqlite =================== * Remove fetchRow(). It's already in DB_result, no other driver has one, argument order was different, works fine without it. * Catch touch() and chmod() errors. Bug 292. * Since only SQLite uses 'mode', remove it from $params in DB.php and add an isset check in sqlite.php. * Fix connection types. Was using persistent when asked for regular and regular when asked for persistent. Bug 25806. (tuupola) * Remove unused DB_FETCHMODE_BOTH constanst. (tuupola) * Add debug information from sqlite_last_error() in sqliteRaiseError(). (tuupola) * Fix mem leaks in some drivers even when free() is called. (cox) == storage ================== * Add strtolower() to all get_class() calls, creating PHP 4/5 compatibililty. * PEAR.php already required in DB.php * Return by reference fixes. Bug 361. * Some cleanup (mj): + Using <br /> instead of <br> + Removing usage of @ and replacing that with a more elaborate construct. + Removing usage of non-existing member variable $_discard. == sybase =================== * Allow empty passwords. Bug 564. * Add tableInfo(). * Implement sequences. * Make fetchInto() drop numbered keys when DB_FETCHMODE_ASSOC. Bug 350. * Quiet the sybase connect call. Bug 437. * Set $this->_db so sybase_select_db() in simpleQuery() will work. Bug 49. * Fix mem leaks in some drivers even when free() is called. (cox) * MAKE ERROR MESSAGES WORK: + Use foreach() in errorCode() so loop starts at begining of $error_regexps array each time. + Add some new error string expressions to $error_regexps. + Change values of $error_regexps from Sybase error codes to DB constants. + Delete all elements in $errorcode_map because Sybase extension doesn't return error codes. + Simplify errorCode() and sybaseRaiseError(). Was passing inappropriate arguments to raiseError() -- Sybase's native message went $userinfo and needlessly tried sending DB's own message to $native. Now native goes to $native and $userinfo is null. + Add docblocks for these error methods. + Divide by zero error doesn't pass errormap tests due PHP not reporting it as an error. == tests ==================== * Expanded range of tests. * Adjusted tests to ensure they work under both PHP 4 and PHP 5. * Each test creates and drops all needed tables, even when tests fail. Dependencies:
|
2003-09-14 stable |
|
2003-06-23 stable |
|
2003-05-12 stable |
|
2003-02-08 beta |
|
2002-07-04 stable |
|
2002-04-23 stable |