"Justin Patrin" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Bernie wrote:
>
> > Howdy,
> > I am writing a program that has a handful of classes. I would like
> > to be able to get information from one object to the other. I have a
> > couple of my classes extending others, but are there other ways to do
this?
> >
> > For example: If I have a database class and a separate class that would
> > like to execute an sql statement...
> >
> > class mydbclass {
> > var $db;
> > function mydbclass ($server,$username,$password,$database){
> > $this->db=mysql_connect($server, $username, $password);
> > mysql_select_db("$database",$db);
> > }
> >
> > function dosql($sql){
> > $result = mysql_query($SQL,$db);
> > }
> >
> > }
> >
> > class myotherclass {
> > function myotherclass(){
> > $sql="select * from mytable";
> >
> > #now, how can I use $mydbclass->dosql($sql) to
> > #execute this statement?
> >
> > #I want to be able to build a bunch of html with
> > #the resulting records and it wouldn't make
> > #sence to build all that in my db class
> >
> > }
> > }
> >
> >
> > Thanks!
>
> I would suggest something like this:
>
> class myotherclass {
> var $db
>
> function myotherclass(&$db){
> $this->db =& $db;
>
> $sql="select * from mytable";
>
> $this->db->dosql($sql);
> }
> }
>
> $db = new mydbclass();
> $other = new myotherclass($db);
>
> I would also suggest capitalizing the class names and using another DB
> abstraction layer (such as PEAR DB or MDB) but that's your option. ;-)
Good point Justin. You do not necessarily need a $db var in your data
class - just use the passed $db object in your method:
class myotherclass {
var $db;
function myotherclass(&$db) {
$sql = 'select * from mytable';
$db->dosql($sql);
}
}
Another way is to declare the $db variable global in your methods so that it
is available without the need to pass it to *every* single method:
class myotherclass {
function myotherclass() {
global $db;
$sql="select * from mytable";
$db->dosql($sql);
}
}
But this is a case of personal preference.
Best regards, Torsten Roehr
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php