Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Call to a member function on a non-object :(

Help
Jon
2005-11-20
2013-04-11
  • Jon
    Jon
    2005-11-20

    Why am i getting this message. I am coding an application called phpSIGS, but i keep getting this error: Fatal error: Call to a member function on a non-object in C:\Program Files\XAMPP\xampp\htdocs\development\index.php on line 20. Code is below:
    <?php
    /* phpSIGS
    * Homepage
    */

    require 'include/mysql/adodb.inc.php';
    require 'header.php';
    //require 'include/template.inc.php';
    //require 'include/jpgraph/jpgraph.php';

    $db = ADONewConnection('mysql');
        $db->debug = true;
        $db->Connect($db_host, $db_username, $db_password, $db_database);
       
    function calculate_bandwidth()
    {
        //Declare total vairable
        $total = 0;
        //execute mysql query and find out total bandwidth
        $db  = $db->Execute("SELECT * FROM phpsigs_bandwidth"); 
        while (!$resultid->EOF())
        {
            $row = $db->fields; 
            $add = $row["transfered"];
            $total = $total + $add; 
            $resultid->MoveNext();
           
        }
           
        //Make size human readable , i.e. no 100000000000000000000000000000000000000000000000000 bytes.(from PHP.NET).
        $filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
        $total = round($total/pow(1024, ($i = floor(log($total, 1024)))), 2) . $filesizename[$i]; 
        echo $total;
    }

    function create_bandwidth_graph()
    {
        //Coming soon
    }
    //tpl_header();
    echo '<b>Welcome to yoursitename!</b><br />';
    echo 'Yoursitename is an dynamic sig hosting service, where you can have whats currenty playing in winamp, your Whatpulse stats and more in your sig! All of this can be managed in an easy to use control panel. You also have 50KB of disc space for your own signiture image, so you can customize it as much as you want. This service has transfered an total of'. calculate_bandwidth() .'!<br />\n';
    echo '<br />\n';
    echo ' <a href="signup.php"><center><b>Sign up now!!</b></center></a>\n';
    //tpl_footer();

    ?>
    Any ideas?

     
    • Mark Dickenson
      Mark Dickenson
      2005-11-20

      This line...

      $db = $db->Execute("SELECT * FROM phpsigs_bandwidth"); 

      Should be...

      $resultid = $db->Execute("SELECT * FROM phpsigs_bandwidth"); 

       
    • Kevin Bennett
      Kevin Bennett
      2006-02-19

      Actually, the problem is the $db variable is not made available inside the function.

      Add this to the top of the function:

      global $db;