【问题标题】:Trying to call method: undefined function error试图调用方法:未定义的函数错误
【发布时间】:2010-11-12 01:31:41
【问题描述】:

我有一个类可以连接到我的数据库、剥离内容并从数据库查询中返回内容。无论如何,我遇到的问题是我正在尝试调用 runQuery() 方法,但每次尝试时,我都会收到此错误:

致命错误:调用 DatabaseConnector.php 第 22 行中未定义的函数 runQuery()

有什么想法吗?我知道runQuery 是私有的,但它属于同一类。只是为了好玩,我以任何方式将其更改为公开,但仍然遇到相同的错误:(

final class DatabaseConnector
{
    private $db;

    public function DatabaseConnector()
    {
        //  constructor
    }

    public function connectMySQL($host, $user, $passwrd, $db, $query)
    {
        @ $db = new mysqli($host, $user, $passwrd, $db);

        if (mysqli_connect_errno())
        {
            return mysqli_connect_errno();
        }
        else
        {
            $queryResult = runQuery($query);

            return $queryResult;
        }
    }

    private function runQuery($query)
    {
        $result = $db->query($query);

        return $result;
    }
}

【问题讨论】:

    标签: php class function methods


    【解决方案1】:

    在 PHP 中,您必须在对象级方法/变量前面加上 $this,否则它将在全局“命名空间”中查找函数/变量。

    所以把$queryResult = runQuery($query);改成$queryResult = $this->runQuery($query);

    【讨论】:

    • 是的,我讨厌这样。我猜你只是习惯了。
    • 说到 PHP,你已经习惯了很多这样的细微差别。
    猜你喜欢
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    相关资源
    最近更新 更多