Wow...this is pretty cool. Do you HAVE to declareall your varibles ahead of time? "Steve Bradwell" <[EMAIL PROTECTED]> wrote in message 57A1618E7109D311A97D0008C7EBB3A1010C8258@KITCHENER">news:57A1618E7109D311A97D0008C7EBB3A1010C8258@KITCHENER... > Classes are great for code reusability, I heavily use a MySQL object or > class to make all my conections to a mysql database now and I have included > methods for Transactions. > > Its a long one but its the class I use the most and is a great example of > what they are good for. > > > <? > class mysqldb { //so here define the name of the class. > > //set up the object, these are the variables that are accessible by each > instance you create > // of an object. > var $host; > var $db; > var $dbuser; > var $dbpassword; > var $sql; > var $numberrows; > var $dbopenstatus; > var $dbconnection; > var $qry; > var $result; > var $TransactionSwitch; > /* > Use these functions to get and set the values of this object's > variables. This is good OO practice, as it means that datatype > checking can be completed and errors raised accordingly. > > */ > > // Property Get & Set these methods are used set class vars and to > retrieve them. > > function gethost() { > return $this->dbhost; > } > > function sethost($req_host) { > $this->dbhost = $req_host; > > } > > function getdb() { > return $this->db; > } > > function setdb($req_db) { > $this->db = $req_db; > } > > function getdbuser() { > return $this->dbuser; > } > > function setdbuser($req_user) { > $this->dbuser = $req_user; > } > > function getdbpassword() { > return $this->dbpassword; > } > > function setdbpassword($req_password) { > $this->dbpassword = $req_password; > } > > function getsql() { > return $this->sql; > } > > function setsql($req_sql) { > $this->sql = $req_sql; > } > > function getnumberrows() { > return $this->numberrows; > } > > function setnumberrows($req_numberresults) { > $this->numberesults = $req_numberresults; > } > > function setdbconnection($req_dbconnection) { > $this->dbconnection = $req_connection; > } > > function getdbconnection() { > return $this->dbconnection; > } > > function setTransactionSwitch($switch) { > $this->TransactionSwitch = $switch; > } > > function getTransactionSwitch() { > return $this->TransactionSwitch; > } > > /* > This is the constructor for the object. In this case I have set > the initial values of a number of the object properties to those > values declared in the global constants.inc. By doing this, I > only need to change the values of these properties for specific > operations, which we will not need to do throughout this example > > */ > function mysqldb() { > > global $HOST, $DB, $WEBUSER, $WEBPASSWORD; > global $TRUE, $FALSE; > > $this->sethost($HOST); > $this->setdb($DB); > $this->setdbuser($WEBUSER); > $this->setdbpassword($WEBPASSWORD); > $this->setdbconnection($FALSE); > > } > > /* > These are the methods for the object. They provide for opening a > connection to the database, closing a connection and executing a > SELECT query. Of course, these can be expanded upon to allow for > INSERT's, UPDATE's and DELETE's etc... > */ > function opendbconnection() { > > global $TRUE, $FALSE; > > $this->dbconnection = mysql_connect("$this->dbhost", > "$this->dbuser", "$this->dbpassword"); > if ($this->dbconnection == $TRUE) { > $this->db = mysql_select_db("$this->db"); > $this->setdbconnection($TRUE); > } else { > $this->setdbconnection($FALSE); > return false; > } > return true; > } > > function closedbconnection() { > > if ($this->dbconnection = $TRUE) { > mysql_close($this->dbconnection); > } > > } > > function begin( ) { > if ($this->dbconnection == $FALSE) { > $this->opendbconnection(); > } > $this->setsql("BEGIN"); > $this->qry = mysql_query($this->sql); > if (!$this->qry) { > return false; > } else { > return true; > } > } > > function rollback( ) { > if ($this->dbconnection == $FALSE) { > $this->opendbconnection(); > } > $this->setsql("ROLLBACK"); > $this->qry = mysql_query($this->sql); > if (!$this->qry) { > return false; > } else { > return true; > } > } > > function commit( ) { > if ($this->dbconnection == $FALSE) { > $this->opendbconnection(); > } > $this->setsql("COMMIT"); > $this->qry = mysql_query($this->sql); > if (!$this->qry) { > return false; > } else { > return true; > } > } > > function selectquery() { > > global $TRUE, $FALSE; > > if ($this->dbconnection == $FALSE) { > $this->opendbconnection(); > } > $this->qry = mysql_query($this->sql); > if (!$this->qry) { > return false; > } else { > $this->numberrows = mysql_num_rows($this->qry); > if ($this->numberrows > 0) { > for($x = 0; $x < $this->numberrows; $x++) { > $this->result[$x] = mysql_fetch_row($this->qry); > } > } else { > // echo("[Error:] Retrieving data"); > return false; > } > return true; > } > } > > function insertquery() { > > global $TRUE, $FALSE; > > if ($this->dbconnection == $FALSE) { > $this->opendbconnection(); > } > > $this->qry = mysql_query($this->sql); > if (!$this->qry) { > return false; > } else { > return true; > } > } > > function deletequery() { > > global $TRUE, $FALSE; > > if ($this->dbconnection == $FALSE) { > $this->opendbconnection(); > } > > $this->qry = mysql_query($this->sql); > if (!$this->qry) { > return false; > } else { > return true; > } > } > > function updatequery() { > > global $TRUE, $FALSE; > > if ($this->dbconnection == $FALSE) { > $this->opendbconnection(); > } > > $this->qry = mysql_query($this->sql); > if (!$this->qry) { > return false; > } else { > return true; > } > } > > } > > ?> > > And now in any .php file you include this .obj file and use it as follows. > > $db1 = new mysqldb(); // create a new instance of the mysql object. > // You can create as many as you want and > the great thing is > // that each instances vars will contain > there own data. > > $sql = "Insert into ..."; > $db1->setTransactionSwitch("true"); > $db1->begin(); //this will begin a transaction (InnoDb or BDB tables > are required for this) > $db1->setsql($sql); //set the objects $sql variable. > if (!$db1->insertquery()) //now call the method that does > all the work so > $db1->setTransactionSwitch("false"); //you don't have to recode it. > If it fails roolback. > if($db1->getTransactionSwitch()=="false");{ > $db1->rollback(); > }else{ > $db1->commit(); > } > > Classes allow you to have multple instances of an object containing > seperate info, makes it easier to keep track of. > Hope this helps, > Steve. > > -----Original Message----- > From: Chris Crane [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, July 16, 2002 11:07 AM > To: [EMAIL PROTECTED] > Subject: Re: [PHP] Classes vs. Functions > > > It helps a little bit, thank you. Could you provide some code as to what a > Class looks like. I am just trying to understand it better and if I see it, > it might help. > "Jay Blanchard" <[EMAIL PROTECTED]> wrote in message > 000401c22cd8$54ce9ce0$8102a8c0@niigziuo4ohhdt">news:000401c22cd8$54ce9ce0$8102a8c0@niigziuo4ohhdt... > > [snip] > > Could someone please explain the difference between classes and functions > > and how to use a class. I write alot of PHP, but I never understood this > at > > all. I use an include statement in many of my pages and include a file > with > > a bunch of functions. For instance, I might have a function called > stock(); > > In the page I am using I include the file that has this function and I > call > > it like this: > > > > stock($Sym); > > > > I am wondering if I am doing it the wrong way. So I need to better > > understand classes. What is one, and why would you use it? > > [/snip] > > > > A class is the representation of an object, such as a person, place, or > > thing. > > A function is a group of commands that can be called for a specific > purpose. > > > > function addNumbers() > > > > A function can be performed on an object, but an object (the logical > > extension of class) cannot be performed on a function. Does that help? > > > > Jay > > > > "Cleverly disguised as a responsible adult" > > > > ************************************* > > * Want to meet other PHP developers * > > * in your area? Check out: * > > * http://php.meetup.com/ * > > * No developer is an island ... * > > ************************************* > > > > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php