vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Database Class won't work -- Call to a member function on a non-object in ... (https://vborg.vbsupport.ru/showthread.php?t=58170)

gengar003 10-25-2003 12:38 PM

Database Class won't work -- Call to a member function on a non-object in ...
 
First off, this isn't vBulletin related, but this is the most active/helpful/nice/php 'n' mySQL knowledgable forum around, so I thought I'd post my question here.


I'm trying to write my own news management script. But for the most part that's irrelevant to my problem.

Okay, here's my problem.

I'm using this as a Database Class.

PHP Code:

//////////////////////////////BEGIN DB CLASS
class DB_SITE {
//vars

///vars

//connect
function DB_SITE(){
echo 
"fat";
}

function 
connect($host,$un,$pw){
$link mysql_connect ("$host""$un""$pw") or die ('I cannot connect to the database because: ' mysql_error());

if (
$link=="false"){
    exit(
"Unable to connect to $host");
    }
    }
///connect

//select db
function select_db($usedb){
$select=mysql_select_db("$usedb");
if (!
$select==mysql_select_db("$usedb")){
    exit(
"Unable to select the database");
 }
 }
//noselectdb

 /////query
function query($query,$link){

$result mysql_query("$query"$link);
if (
$result=="false"){
    exit(
"Illegal query");
}






return 
$result;
}
///////no query
 
}
////////////////////////////END DB CLASS 

And the script seems to like it fine.

(Also, above it, at the very top are these:)

PHP Code:

$host="localhost";
$un="gengar00_Gengar0";
$pw="*******"///it's filled in in the script, just not in this post
$usedb="gengar00_news"

Which are used in the class.

Now, if I scrap the idea of a class, and remove the code form the functions, it'll connect/select/query fine. But I want it to be in a class. However, after I set up the class, when I use this code:

PHP Code:

$DB_SITE->connect($host,$un,$pw); 

using the variables set at the very top of the script, it returns this error:

Quote:

Fatal error: Call to a member function on a non-object in /home/gengar00/public_html/news/news.php on line 56
Line 46-66:
PHP Code:

//46
//47
//48
//59
//50
return $result;//51
}//52
///////no query//53
 
}//54
////////////////////////////END DB CLASS//55
$DB_SITE->connect($host,$un,$pw);//56
//57
//58
function isloggedin($username){//59
echo "<input type=\"hidden\" name=\"loggedin\" value=\"$username\">";//60
}//61
//62
function error_nologin(){//63
 
echo "Sorry, but that's not a valid username/password combination.";//64
}//65
//66 

So, why's it give me that error?

filburt1 10-25-2003 12:59 PM

Did you ever contruct a DB_SITE object?

gengar003 10-25-2003 05:22 PM

Huh? Isn't
PHP Code:

class DB_SITE {
blahblah blah


enough?

gengar003 10-25-2003 06:18 PM

EDIT: Fixed this problem. Stay tuned for more. *sigh*


NOTE: Okay, I created a new thingamajig, now I need to: make a "fetch_array" function. I tried, using this code:

PHP Code:

function fetch_array($arrayx){

$array=mysql_fetch_array($arrayx,MYSQL_BOTH);
return 
$array;



Does that look right?

Then, I use this:

PHP Code:

$DB_SITE->select_db($usedb);
echo 
$usedb;

$data $DB_SITE->("SELECT email FROM authors WHERE name='Gengar003'");
while (
$row mysql_fetch_array($dataMYSQL_ASSOC)) {
        
printf ("email: %s"$row["email"]);
    } 

NOTE: DB is connected to earlier in the script.

Then I run it, and get this error:

Quote:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `'{'' or `'$'' in /home/gengar00/public_html/news/dbconnect.php on line 70
And before it started doing that, It gave me something like...
"Supplied argument is not a valid mysql result resource."


Lines 60-76:
PHP Code:

return $array;

}

//nofetch
 
}
/////////////////////////////////////////////////////////////////END DB CLASS
$DB_SITE->select_db($usedb);
echo 
$usedb;

$data $DB_SITE->("SELECT email FROM authors WHERE name='Gengar003'");
while (
$row mysql_fetch_array($dataMYSQL_ASSOC)) {
        
printf ("email: %s"$row["email"]);
    }


?> 



All times are GMT. The time now is 03:23 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.00982 seconds
  • Memory Usage 1,754KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (8)bbcode_php_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete