943,664 Members | Top Members by Rank

Ad:
  • PHP Discussion Thread
  • Unsolved
  • Views: 1119
  • PHP RSS
Mar 27th, 2008
0

OOPing with PHP4 simple DB connect class?

Expand Post »
I am banging my head against the wall here.
I've tried everything that I can think of to get this to work.

PHP Syntax (Toggle Plain Text)
  1. class myData {
  2. function myStuff($sql){
  3. $result = @mysql_query($sql,$connection) or die(mysql_error());
  4. while ($row = mysql_fetch_array($result)) {
  5. $adId = $row['adId'];
  6. $adName = $row['adName'];
  7. $adData .= "my adId is $adId and guess what? my adName is $adName <br/><br/>";
  8.  
  9. }
  10. }
  11. }

Note, I am also using a "require_once" of a file which holds variables for
PHP Syntax (Toggle Plain Text)
  1. $connection = mysql_connect("localhost","maDB","maPassword") or die(mysql_error());
  2. $db_name = "myDB";
  3. $db = @mysql_select_db($db_name,$connection) or die(mysql_error);

in my index page I have the following

PHP Syntax (Toggle Plain Text)
  1. sql = "select * from tablename";
  2. $objAdvertisers = new myData;
  3. $objAdvertisers->myStuff($sql);

Using this method keeps giving me an error of
unexpected T_CLASS...

I've tried several other things, but I was almost sure that this was the way that it was sposed to work?

All I am trying to do is create a generic connect to database and pass $sql as an argument, then store some information based on that as an array for each record that matches my request.

I am using a PHP4 server.

Any help?
Thanks
Sage
Reputation Points: 10
Solved Threads: 6
Junior Poster in Training
sagedavis is offline Offline
86 posts
since Nov 2007
Mar 28th, 2008
0

Re: OOPing with PHP4 simple DB connect class?

There is nothing in the code that you posted that is actually causing the error.

Look at my tutorial here which has a nice introduction to using database classes.


Matti Ressler
Suomedia
Reputation Points: 15
Solved Threads: 19
Junior Poster
Suomedia is offline Offline
154 posts
since Mar 2008
Mar 28th, 2008
0

Re: OOPing with PHP4 simple DB connect class?

Thanks for this tute, it's pretty good, although, I wouldn't recommend a beginning OOPer to read that right off the bat.

I've been working with PHP OOPing for only a short time, but, as it's a daily requirement in my job, I find your stuff easier to follow than our own docs at work.

The only thing is that I have never seen anything like line 17 before.
PHP Syntax (Toggle Plain Text)
  1. function flowSQL($db_server = DATABASE_SERVER, $db_user = DB_USERNAME, $db_pass = DB_PASSWORD, $database = DATABASE)
is this a PHP5 thing?
I don't have access to 5 at the moment, err... scratch that.. I don't have access on the server that I am creating this for, to PHP5.

I am assuming that, this line must stay as is, however, we need to use
PHP Syntax (Toggle Plain Text)
  1. define('DATABASE_SERVER', 'localhost');

another item I am assuming is PHP5 which does not work in 4, as I have never seen it in a PHP4 script.

further assumption is that, if I actually did all the defines, that this would globally define these items as long as I use some require page.php.

At which point I would be able to do something like
PHP Syntax (Toggle Plain Text)
  1. $query = "SELECT needle FROM haystack WHERE hay = yellow";
  2. $myQuery = new flowSQL;
  3. $myQuery->flowSQL();
  4. $myQuery->query($query);

or is it even needed to use the second to last line?

Thanks again for your help
Sage
Reputation Points: 10
Solved Threads: 6
Junior Poster in Training
sagedavis is offline Offline
86 posts
since Nov 2007
Mar 28th, 2008
0

Re: OOPing with PHP4 simple DB connect class?

Click to Expand / Collapse  Quote originally posted by sagedavis ...
I am banging my head against the wall here.
I've tried everything that I can think of to get this to work.
....

in my index page I have the following

PHP Syntax (Toggle Plain Text)
  1. sql = "select * from tablename";
  2. $objAdvertisers = new myData;
  3. $objAdvertisers->myStuff($sql);

Using this method keeps giving me an error of
unexpected T_CLASS...
...
Did you forget the $ before sql in the code above?

PHP Syntax (Toggle Plain Text)
  1. $sql = "select * from tablename";
  2. $objAdvertisers = new myData;
  3. $objAdvertisers->myStuff($sql);

That would probably generate a T_STRING error...

As for the T_CLASS error, make sure you didn't forget to close open braces () or {} or are missing a ; at the end of your statements just before the class definition.
Moderator
Reputation Points: 457
Solved Threads: 101
Nearly a Posting Virtuoso
digital-ether is offline Offline
1,250 posts
since Sep 2005
Mar 28th, 2008
0

Re: OOPing with PHP4 simple DB connect class?

Click to Expand / Collapse  Quote originally posted by sagedavis ...

The only thing is that I have never seen anything like line 17 before.
PHP Syntax (Toggle Plain Text)
  1. function flowSQL($db_server = DATABASE_SERVER, $db_user = DB_USERNAME, $db_pass = DB_PASSWORD, $database = DATABASE)
is this a PHP5 thing?
No its not. It uses defines, eg. DATABASE_SERVER that are defined in the configuration file.

Click to Expand / Collapse  Quote originally posted by sagedavis ...
I don't have access to 5 at the moment, err... scratch that.. I don't have access on the server that I am creating this for, to PHP5.

I am assuming that, this line must stay as is, however, we need to use
PHP Syntax (Toggle Plain Text)
  1. define('DATABASE_SERVER', 'localhost');
Thats exactly as I have it in the tutorial configuration file. The example given in the tutorial is pretty standard for any version of PHP.

Click to Expand / Collapse  Quote originally posted by sagedavis ...

further assumption is that, if I actually did all the defines, that this would globally define these items as long as I use some require page.php.
Yes, you will see in the tutorial that your main page has:

PHP Syntax (Toggle Plain Text)
  1. // include the configuration file and database class
  2. require('include/config.php');
  3. require('include/class/mysql.php');

Click to Expand / Collapse  Quote originally posted by sagedavis ...
At which point I would be able to do something like
PHP Syntax (Toggle Plain Text)
  1. $query = "SELECT needle FROM haystack WHERE hay = yellow";
  2. $myQuery = new flowSQL;
  3. $myQuery->flowSQL();
  4. $myQuery->query($query);

or is it even needed to use the second to last line?
Its better structured like this (less confusing):

PHP Syntax (Toggle Plain Text)
  1. $dBase = new flowSQL;
  2. $query = $dBase->query("SELECT needle FROM haystack WHERE hay = yellow");

We still need to fetch our result however, eg:

PHP Syntax (Toggle Plain Text)
  1. while($result = $dBase->fetch_array($query)) {
  2. // do stuff
  3. }


Matti Ressler
Suomedia
Reputation Points: 15
Solved Threads: 19
Junior Poster
Suomedia is offline Offline
154 posts
since Mar 2008
Mar 28th, 2008
0

Re: OOPing with PHP4 simple DB connect class?

Great Matti,
I shall try this over the weekend.

The main reason for wanting to pass the var $sql as an arg, rather than type out the statement is because, there might be some dynamic stuff going on there as well, as in the case of say a search function, with advanced features.

At any rate, I shall dig into your tute more deeply this weekend.

Thanks
Sage
Reputation Points: 10
Solved Threads: 6
Junior Poster in Training
sagedavis is offline Offline
86 posts
since Nov 2007

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in PHP Forum Timeline: simple, but having a brainfart
Next Thread in PHP Forum Timeline: geographical location from IP





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC