RE: PHP Database Abstraction...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have just ported my CRiMson (CRM) system to this type of idea last night!

Very simple actually, and mebbe this is to simple for your needs, but I
wanted my project to be portable, plus it was a proof of concept idea for me
to see if this is feasible going forward. So far I'm very happy with the
results... All I did was create a "db.php" include file, put that at the top
of any page requiring the db access, and use my custom SQL_ calls. Now,
should I ever change the RDBMS backend, I (in theory) only need to change
this page. Plus, my code is much cleaner. I see this expanding as I use more
features, but honestly, these are the only 4 functions that I ever use in
mySQL/PHP anyways...

<?php
$db = mysql_connect ("localhost","user","pw") or die ("Could not connect to
SQL server.");
mysql_select_db ("crm",$db) or die ("Could not select CRM Database");

function SQL_QUERY($sql)
{
	global $db;
	//echo $sql."<BR>";
	$result = mysql_query($sql,$db);
	if (!$result) 
	{
		global $errorString;
		$errorString .= "<FONT CLASS='error'>Error ::
".mysql_errno($db)." :: ".mysql_error($db)."<BR>".$sql."<BR></FONT>\n"; 
	}
	return $result;
}

function SQL_NUM_ROWS($result)
{
	return mysql_num_rows($result);
}

function SQL_ASSOC_ARRAY($result)
{
	return mysql_fetch_array($result,MYSQL_ASSOC);
}

function SQL_INSERT_ID()
{
	return mysql_insert_id($db);
}
?>

> -----Original Message-----
> From: Scott Winkle [mailto:swinkle@wittenberg.edu] 
> Sent: Friday, April 25, 2003 8:19 AM
> To: php-db@lists.php.net
> Subject:  PHP Database Abstraction...
> 
> 
> Hi all,
> 
> Looking to get opinions here.
> 
> I have begun a fairly major project which I do not want to 
> give too many 
> details out on right now, but one of the major goals is 
> abstraction for 
> all major SQL databases. Of course, MySQL is the most 
> important and also 
> the only one I have any significant experience with.
> 
> Previous, non-public projects (this will eventually be an open-source 
> project once I have it ready for prime time and secure a few 
> commercial 
> sales) I have used my own system of abstraction, basically having a 
> class for each database type and changing the include as needed, that 
> class had methods for all major queries so most SQL was part of that 
> class, and others who were familiar with the different databases made 
> the classes as needed for the other databases. So far, it has 
> seemed to 
> work well, given that the projects that used this method only 
> ran code 
> developed as part of the core project. 'Mods' and 'Plugins' were at 
> users own risk.
> 
> This project, which some might classify as a YAPS (Yet Another Portal 
> System) -- even though there are numerous core differences -- 
> will have 
> modules, add-ons, and plugins all handled structurally as part of the 
> core, requiring a good DB Abstraction API.
> 
> I have thought about PEAR, AdoDB, dbx, etc, but my thinking is that 
> might make it harder for the users (site admins) to develop their own 
> database module as needed...
> 
> Has anyone had experience with doing this or can provide good 
> feedback/opinions on what would work best?
> The three options I am considering are: Custom Abstraction 
> (Similiar to 
> what I have done before, but fixed up a bit to support custom code), 
> dbx, and PEAR. I have seen enough benchmarks to rule out 
> AdoDB at this time.
> 
> Thanks,
> Scott
> 
> 
> 
> -- 
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux