Re: new package DB_Abstract/Easy/DataBuilder/DataGetter/?

From: Date: Wed, 15 Jan 2003 14:03:38 +0000
Subject: Re: new package DB_Abstract/Easy/DataBuilder/DataGetter/?
Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-12466@lists.php.net to get a copy of this message
anymore +/-1 ? or topic dropped? wolfram -------- Original Message -------- Subject: [PEAR-DEV] new package DB_Abstract/Easy/DataBuilder/DataGetter/? Date: Tue, 14 Jan 2003 15:33:36 +0100 From: Wolfram Kriesing <wolfram@visionp.de> To: pear-dev@lists.php.net for about almost a year now we are continuosly improving our package, which we decided to contribute to pear now. the package itself is based on PEAR::DB (optional MDB, would be minor change) and it is a bit like the DB_DataObject - only that the data are not really inside objects and - that the query-building is more flexible, i believe. - actually it is a query-builder and executer ... we are building our applications always with this class and since then (i dont remember that) we have written a single SQL-Query by hand, so it seems quite flexible currently the class name is vp_DB, i thought it might be named DB_Abstract/Easy/DataBuilder/DataGetter/???? (even though i think better names could be found) the class is capable of, manipulating the entire query incl - where - joins, left and right joins - group - order and many more things methods are: get, getAll, getMultiple, update, save, add, remove, getCount, setWhere, addWhere, getWhere, setJoin, addJoin, setLeftJoin, addLeftJoin, setGroup, getGroup, setOrder, getOrder, setIndex, getIndex, setSelect, getSelect and some more i guess ... short examples might demostrate some of what it does
          require_once 'vp/DB.php';
          class contact extends vp_DB {
              	var $table = 'contact';
var $primaryCol = 'id';
         	}
         	$contact = new contact();
(1) // get the contact with the id=7
       	$data = $contact->get(7);
(2) // reset all internal settings $contact->reset();
          	$contact->setWhere('name="Wolfram"');
$contact->setOrder('name'); // get the first 10 (LIMIT 0,10) $contacts = $contact->getAll(0,10); (3) // reset all internal settings $contact->reset();
          	$contact->addWhereSearch('name','Wolfram Kriesing');
$contacts = $contact->getAll(0,10); (4) // reset all internal settings $contact->reset();
          	$contact->addWhereSearch('name','Wolfram Kriesing');
// select only the columns 'name' and 'surname' $contact->setSelect('name,surname'); $contact->setGroup('name'); // group by 'name' // the number of contacts $numContacts = $contact->getCount(); $contacts = $contact->getAll(0,10); JOINS (5) // join the table 'user' // using the condition 'user.id=contact.user_id' $contact->reset(); $contact->setJoin('user','user.id=contact.user_id'); $contacts = $contact->getAll(0,10); (6) // the same as above, just that the class // knows itself how to join the tables, // by using a regular expression $contact->reset(); $contact->autoJoin('user'); $contacts = $contact->getAll(0,10); the queries would be: (1) SELECT * FROM contact WHERE id=7 (2) SELECT * FROM contact WHERE name="Wolfram" LIMIT 0,10 (3) SELECT * FROM contact WHERE name LIKE "%Wolfram%Kriesing%" LIMIT 0,10 (4) getCount: SELECT count(*) FROM contact WHERE name LIKE "%Wolfram%Kriesing%" GROUP BY name LIMIT 0,10 getAll: SELECT name,surname FROM contact WHERE name LIKE "%Wolfram%Kriesing%" GROUP BY name LIMIT 0,10 (5) (6) SELECT * FROM contact,user WHERE user.id=contact.user_id code is here, needs minor modification before it goes into pear http://os.visionp.de/tmp/vp_DB/Common.php.txt -- Wolfram ... opensource @ vision:produktion ... http://opensource.visionp.de ... translating template engine .... http://sf.net/projects/simpletpl ... authentication system .... http://sf.net/projects/auth -- PEAR Development Mailing List (http://pear.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- Wolfram ... opensource @ vision:produktion ... http://opensource.visionp.de ... translating template engine .... http://sf.net/projects/simpletpl ... authentication system .... http://sf.net/projects/auth

« previous php.pear.dev (#12466) next »