PHP фатальная ошибка вызова неопределенного метода ... что я на 99% уверен, что определен - PullRequest
0 голосов
/ 22 декабря 2011

session.php

include("database.php");

function addPOTW($subweek, $subtitle, $subcaption, $subsubmittedby)
{
    global $database, $form;
    /* Errors exist, have user correct them */
    if ($form->num_errors > 0) {
        return 1; // Errors with form
    }
    /* No errors, add the new POTW to the database */
    else {
        if ($database->addNewPOTW($subweek, $subtitle, $subcaption, $subsubmittedby, $subfile)) {
            return 0; //Event signup added succesfully
        } else {
            return 2; //Event signup attempt failed
        }
    }
}

Это моя функция "addPOTW", расположенная в файле session.php (с отредактированными ненужными частями).По какой-то причине я получаю сообщение об ошибке: "Неустранимая ошибка: вызов неопределенного метода MySQLDB :: addNewPOTW ()" , даже если он определен прямо здесь:

database.php

class MYSQLDB {
    function addNewPOTW($date, $title, $caption, $submitter, $filepath)
        {
            $q = "INSERT INTO `" . TBL_POTW . "` VALUES ('','$date','$title','$caption','$submitter','$filepath')";
            return mysql_query($q, $this->connection);
        }
}

У меня есть другие функции в session.php, которые обращаются к функциям в database.php, используя переменную $ database точно так же, как , и они прекрасно работают.Любые идеи, почему только эта одна функция сообщается как неопределенная ??

1 Ответ

2 голосов
/ 22 декабря 2011

Поскольку вы ссылаетесь на $this, вам нужно создать экземпляр объекта из этого класса и затем вызвать метод.

Нечто подобное должно заставить работать ...

$database = new MYSQLDB;

Убедитесь, что у вас есть область действия, прежде чем ваша функция addPOTW().

...