在PHP中集成类

时间:2017-03-17 03:59:51

标签: php class

我查看了各种论坛软件,并尝试复制一个想法。这是为了让我更好地使用PHP的类,但是,这是我第一次使用类。我正在创建一个类,允许我通过一个简单的单行命令从数据库中提取信息。我理解大多数人会说这不是一个好主意,但是,当用户插入数据时,不会使用此行。

这是班级:

$db = new DB_MySQLi;

class DB_MySQLi
{

    function simple_select($table, $fields="*", $conditions="", $options=array())
    {
        $query = "SELECT ".$fields." FROM ".$this->table_prefix.$table;

        if($conditions != "")
        {
            $query .= " WHERE ".$conditions;
        }

        if(isset($options['group_by']))
        {
            $query .= " GROUP BY ".$options['group_by'];
        }

        if(isset($options['order_by']))
        {
            $query .= " ORDER BY ".$options['order_by'];
            if(isset($options['order_dir']))
            {
                $query .= " ".my_strtoupper($options['order_dir']);
            }
        }

        if(isset($options['limit_start']) && isset($options['limit']))
        {
            $query .= " LIMIT ".$options['limit_start'].", ".$options['limit'];
        }
        else if(isset($options['limit']))
        {
            $query .= " LIMIT ".$options['limit'];
        }

        return $this->query($query);
    }


}

每当我尝试运行这样的查询时:

$query = $db->simple_select("users", "*");

我收到这些错误: 注意:未定义的属性:DB_MySQLi :: $ table_prefix 致命错误:调用未定义的方法DB_MySQLi :: query()

为什么DB_MySQLi未定义?

1 个答案:

答案 0 :(得分:0)

DB_MySQLi未定义,DB_MySQLi::query()是。

return $this->query($query); - 当你告诉PHP使用$this->时,你正在调用类的范围内(该类的特定实例)。在这种情况下,您的query类中没有名为DB_MySQLi的方法;因此无法找到它并因此抛出错误。