Re: [PHP4BETA] DB.php

From: Date: Wed, 08 Dec 1999 11:43:05 +0000
Subject: Re: [PHP4BETA] DB.php
References: 1  Groups: php.version4 
Request: Send a blank email to php-version4+get-7661@lists.php.net to get a copy of this message
On Tue, 7 Dec 1999, Andrei Zmievski wrote: | I fail to understand the purpose of DB class in PEAR. Is it supposed | to be a factory class? Because it certainly does more than that. Why | does it have fetchRow() and DB_mysql class has fetchRow(), yet DB class | doesn't have query() method. There are two classes in DB.php: DB and DB_result. DB contains two factory methods (factory and connect) as well as a bunch of functions common to all of DB, such as rewriting error codes to messages. These should always be used with the "static" syntax: DB::isError(). Then there's DB_common, which defines some default methods (sort-of virtual), as well as a bunch of common utility methods I started writing this morning. DB_common is only for inheritance from DB_[dbtype]. DB_[dbtype] implements only the database-specific stuff. The query() method returns a DB_result object, which is defined DB.php (this is where the fetchRow() method you mention comes from). Example: $dbobj = DB::connect("mysql://user:pass@localhost/mydb"); // $dbobj is an instance of DB_mysql $robj = $dbobj->query('SELECT * FROM mytable'); // $robj is an instance of DB_result There's a lot of stuff in the DB code that needs the "return references" rewrite though, just look for "XXX ADDREF". :-) - Stig

« previous php.version4 (#7661) next »