我查看了各种论坛软件,并尝试复制一个想法。这是为了让我更好地使用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未定义?
答案 0 :(得分:0)
DB_MySQLi
未定义,DB_MySQLi::query()
是。
return $this->query($query);
- 当你告诉PHP使用$this->
时,你正在调用类的范围内(该类的特定实例)。在这种情况下,您的query
类中没有名为DB_MySQLi
的方法;因此无法找到它并因此抛出错误。