Commit Graph

85 Commits

Author SHA1 Message Date
Jan Lehnardt
9869854d47 - added support for different error messages for the following cases:
-
 - if a user with unsufficient permissions trys to select a database
 - PEAR::DB previously threw a "no database selected" error  instead
 - of a more proper "insufficient permissions". This is fixed now.
 -
 - if a user selects a nonexistant database PEAR::DB threw a
 - "no database selected" error instead of "no such database".
 - This is fixed as well.
 -
 - I added two new constants to DB.php and a simple case construct to
 - DB/mysql.php which can be easily extended to achive the above. I
 - hope this is ok.
 - Thanks to Till Gerken for mentioning this.
2002-02-12 18:29:27 +00:00
Tomas V.V.Cox
22aee18f0b Fix remote security risk, pointed out by Wolfram Kriesing 2002-02-01 16:36:32 +00:00
Tomas V.V.Cox
1cb07caf63 Added support for passing special backend params in DSN. Ex:
ibase://user:pass@localhost/db?role=foo&dialect=bar
2002-02-01 15:03:17 +00:00
Tomas V.V.Cox
87530cf819 Stores limit_from and limit_count as DB_result proporties instead
of DB_common. Fixs bug when doing queries inside limitQuery results.
2002-01-19 07:46:23 +00:00
Tomas V.V.Cox
4cfbd67b08 New DSN "protcocol(protocol_opts)" format support:
phptype://user:pass@protocol(proto_opts)/database
ex:
pgsql://user@unix()/pear
mysql://user@unix(/path/to/socket)/pear
pgsql://user:pass@word@tcp(somehost:7777)/pear
2002-01-13 18:24:56 +00:00
Alexander Merz
4024d1f938 fix phpdoc 2001-12-13 23:07:16 +00:00
Sebastian Bergmann
38933514e1 Update headers. 2001-12-11 15:32:16 +00:00
Tomas V.V.Cox
878fb495fe - By default DB_FETCHMODE_OBJECT will do a cast to object from the row
array (twice fast than with DB_Row)
- API Doc updates/fixs
2001-11-08 13:53:44 +00:00
Tomas V.V.Cox
3a0e43cb54 use feautres property instead of options 2001-11-02 00:38:23 +00:00
Tomas V.V.Cox
fa15d6069c - Added row limit support for fetchInto and fetchRow
- Added getRowCounter method for DB_result to get the row number
  you are fetching in limited queries
2001-11-01 15:14:17 +00:00
Frank M. Kromann
e9c09b86e1 Adding nextResult() function allowing batches of sql statements to be
executed with one call to the query function.
2001-10-29 23:37:27 +00:00
Markus Fischer
1a247ba1d8 Made error returning on missing extensions consistent across all backends 2001-10-14 01:23:07 +00:00
Jon Parise
c6bed4ce3d Search for the '@' symbol in the DSN from the right instead of the left.
That will allow the password element to include a '@' symbol without
confusing the DSN parser.

Submitted by: Alex L <admin@networkessence.net>
2001-10-04 00:29:37 +00:00
Tomas V.V.Cox
fa0481609c * Added the new fetch row mode: DB_FETCHMODE_OBJECT that returns the columns
of a fetched row as object properties
* Added a new class DB_row (the default type of a fetched row object)
* Updated some phpdocs
2001-08-03 14:13:52 +00:00
Tomas V.V.Cox
538c838ac9 DB::assertExtension-> trigger a useful error message if backend extension couldn't be loaded 2001-07-26 00:01:27 +00:00
Chuck Hagenbuch
20a61a49ca fix problem with static usage... 2001-07-17 16:01:16 +00:00
Stig Bakken
8406547fdb (PEAR DB) some doc fixes 2001-07-15 22:54:08 +00:00
Tomas V.V.Cox
51c54c45bd added DB_PARAM_MISC constant to use in prepare/execute 2001-07-12 11:14:12 +00:00
Tomas V.V.Cox
dc60b4d466 added LOCK/UNLOCK to mainps queries (reported by Erik Hjortsberg) 2001-07-11 11:03:27 +00:00
Tomas V.V.Cox
2bf0a0e5af added NEED_MORE_DATA error message to $errorMessages 2001-07-10 21:49:51 +00:00
Tomas V.V.Cox
48cbbbb3db minor in-line doc fix 2001-07-10 11:55:15 +00:00
Tomas V.V.Cox
dfa35a78e6 Forget to add the $this->result param to fetchInto 2001-06-08 01:15:35 +00:00
Tomas V.V.Cox
48920fbb1b Changed constant DB_OK from 0 to 1. So if you set a default error handler,
this will improve fetchInto usability [while ($res->fetchInto($row))],
because don't disturb the while loop
2001-06-07 13:44:44 +00:00
Tomas V.V.Cox
50cb6e3733 change DB_result::fetchRow to use extension fetchInto instead of
DB_result::fetchInto (speed improvement)
2001-06-07 12:55:14 +00:00
Tomas V.V.Cox
cf080fb73f fix small bug on error reporting (PEAR::raiseError params order) 2001-04-19 23:56:57 +00:00
Stig Bakken
fa6f3a3617 * fixed DB_common::getXxx when using the parameter array (didn't work before) 2001-04-19 21:54:37 +00:00
Stig Bakken
ad8dbb8d10 * added Colin's connect/factory error reporting fix 2001-04-19 02:32:33 +00:00
Stig Bakken
b16f38e2e7 * fix handling of broken DSNs like Colin suggested 2001-04-18 23:03:18 +00:00
Stig Bakken
2723ad2e63 * have DB.php use PEAR::raiseError in factory methods 2001-04-17 01:51:27 +00:00
Stig Bakken
f35cef5928 * DB::isManip now handles create, drop, alter, grant, revoke. 2001-04-16 22:16:38 +00:00
Stig Bakken
d3bb832585 * actually commit the stuff I said I had committed :-) 2001-04-16 21:24:38 +00:00
Tomas V.V.Cox
1910b18164 pgsql.php
* better handling of $rownum param in fetchInto()
* changed property numrows[] to num_rows[]

DB.php
* $rowmun in fetch* now defaults to NULL

mysql.php
* added default $fetchmode to ordered
* removed extra checks in connect()
* fetchrow() now uses fetchInto()
* added the "fetch absolute row numbers" feature to fetchInto()
(not tested)

ifx.php
* better handling of $rownum param in fetchInto()
2001-03-28 23:52:21 +00:00
Tomas V.V.Cox
88d526ec5b pgsql.php
* connect() always use pg_connect string instead of the deprecated params
mode
* removed duplicated functions prepare() and execute() (now in common.php)
* pgsqlRaiseError() always fills native error param on DB_error objs
* added third param $rownum to fetchInto() so users can fetch also absolute
row numbers
* changed fetchRow() to use fetchInto() (can not erase, still used in get*()
from common.php

DB.php
* added third param $rownum to fetchInto()/fetchRow() so users can fetch
also absolute row numbers
* changed fetchRow() to use fetchInto()
2001-03-26 23:31:49 +00:00
Stig Bakken
48aa99f6be * added Christian Stocker's tableInfo() implementation 2001-03-24 07:00:44 +00:00
Stig Bakken
4651aa04c0 * fixed Oracle tests, fixed some bugs in DB_oci8, all tests but
errorNative() pass now (but that may be a bug in the test :-)
* implemented numRows() emulation in DB_oci8 that is available
  in "optimize portability" mode only
2001-03-23 01:15:05 +00:00
Jon Parise
d4952b482e Style and whitespace, based mostly on a submission from
"Tomas V.V.Cox" <cox@idecnet.com>.
2001-03-21 04:15:40 +00:00
Jon Parise
cf48573277 Revised version of the parseDSN function.
Submitted by: "Tomas V.V.Cox" <cox@idecnet.com>
2001-03-11 23:26:18 +00:00
Stig Bakken
c685f25d33 * allow empty passwords in dsn (for example "mysql://user:@database") 2001-02-20 23:00:08 +00:00
Chuck Hagenbuch
0b11c910f5 All DB modules should return NULL from fetchRow() now if there are no more
results, and a DB_Error object only on an error.

DB::isError() return false when passed null now.
2001-02-16 17:14:39 +00:00
Colin Viebrock
2265b5b4c5 I think this should've been changed as well, right? 2001-02-02 17:59:30 +00:00
Chuck Hagenbuch
38fae9bae4 make sure to include subclasses before trying to instantiate them. 2001-02-02 05:24:31 +00:00
Stig Bakken
86c5a77ed9 @Allow url encoding in DB usernames and passwords (Stig, PEAR) 2001-01-30 08:34:55 +00:00
Chuck Hagenbuch
b4378dcf80 have DB::isError return true if passed "null". Now you can more consistently
use DB::isError(), since some of the db drivers return nulls from various
functions (like fetchRow()), and others don't... We should probably make all
of them just return errors. I did this for the mysql driver, as a start.
2001-01-26 20:07:22 +00:00
Stig Bakken
6792978aed * updated copyrights (thanks Colin)
* moved scripts to own directory (bug #7635)
2001-01-10 01:01:59 +00:00
Stig Bakken
9f0fc7db8b * DB::isManip counts "REPLACE" as a manipulation command (MySQL specific)
* renamed DB_common::execute_emulate_query to DB_common::executeEmulateQuery
* moved "query" DB method to DB_common, there was duplicated logic in query
  and simpleQuery in all backends.
2000-12-10 01:32:16 +00:00
Stig Bakken
efbc4a2566 * applied fetch modes patch for odbc by Richard M. Yumul
* added DB::isManip so we have _one_ place for testing whether something
  is a data manipulation query
* when passed a string as its first constructor arg, DB_Error now uses
  the error code DB_ERROR rather than just 0
* implemented auto-commit for ibase (not yet fully tested)
* fixed persistent connections in odbc
2000-12-08 02:30:43 +00:00
Stig Bakken
8f74a36858 * added Sebastian's affectedRows() and numRows() for MySQL
* added regression test for DB_mysql::affectedRows
* fixed some PEAR_Error based tests that had broken (line number change)
2000-12-07 19:53:27 +00:00
Stig Bakken
cc9d7fc744 * cleanup 2000-12-06 02:53:14 +00:00
Stig Bakken
48e7da206f * MySQL sequence emulation using auto_increment
* fixed indentation
2000-12-05 07:00:57 +00:00
Sebastian Bergmann
c20df37045 No comment. 2000-12-04 07:05:16 +00:00