Toon posts:

[PHP]Fatal error: Call to a member function on a n

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ok, ik heb 4 files:

1 main file, 1 function file, 1 global file en 1 file met de database class.

De global file maakt een instance aan van de db class.

De main file include de function file en de global file.

In de function file staat een functie die gebruikt maakt van een functie uit de db class ($db->query(sql statement hierzo)).

Als ik nu de main file draai, crasht ie bij die functie met: Fatal error: Call to a member function on a non-object

Als ik dezelfde functie direct in de main file zet werkt het wel. Ik ben nog redelijk groen op het gebied van classes, dus als iemand snapt wat ik net heb geschreven ;), kan die mij dan misschien wat uitleggen over die fout?

Verwijderd

Include je alles goed ?
Weet het ene file van het bestaan van de andere af !?
Dezelfde directory ??
Geen syntaxfouten ??

Kortom meer info en post code. :)

Verwijderd

Topicstarter
Alle files staan in dezelfde dir, en het includen gaat ook goed ja.

de functie die crasht:
PHP:
1
2
3
4
5
6
7
<?
elseif ($db->Query(SQL statement)
{
    $msg = "ID already taken.";
        return($msg);
}
?>

de functie in de database
PHP:
1
2
3
4
5
6
7
8
9
<?
function Query($query_string) 
{
     //perform query, return query id
     $this->query_id = @mysql_query($query_string,$this->link_id) OR die($this->Dberror(query));

return $this->query_id;
}
?>

De bovenste functie check dus alleen of de sql query iets teruggeeft, en zo ja, dan return $msg.

Verwijderd

Topicstarter
Ok met wat testen blijkt dat de function file niet ziet dat de de global file (en dus de db class) er ook bijzit.

M.a.w, ik moet dus me dus maar even wat gaan verdiepen in hoe includes precies werken ;)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Mis je niet gewoon een )

elseif ($db->Query(SQL statement))
{

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
nope, die mist idd in het stukje code hierboven, maar niet in me script (dan had het zoiezo wel een parse error gegeven ipv die error die ik nu heb).

edit:

Aargh nu word ik helemaal gek. Zelfs als ik een instance van de db class in de function file zelf aanmaak blijft die foutmelding staan.

Verwijderd

Topicstarter
Nieuwe dag, nieuwe kansen...iemand? :)

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Heb je wel een
PHP:
1
2
3
<?
global $db;
?>

in de function file staan?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Verwijderd

Heb je je object wel geinstantieerd?
code:
1
2
$db = new db;
$db->do_stuff($blah);

De error doet mij vermoeden dat $db op het moment dat jij een method ervan aanroept dus gewoon niet bestaat als object.

Verwijderd

Op maandag 05 november 2001 00:32 schreef Gio het volgende:

Aargh nu word ik helemaal gek. Zelfs als ik een instance van de db class in de function file zelf aanmaak blijft die foutmelding staan.
Aanvulling op mijn eerdere post:

Je moet die instantiatie ook niet plaats laten vinden in de function file maar gewoon in je code.

Verwijderd

Topicstarter
Mjah ik heb em nu, het was inderdaad een kwestie van die instance van de class in de main file zelf aanmaken. |:(

Weer wat geleerd :)
Pagina: 1