我正在尝试从我的库中访问函数时出现上述错误,如图所示...
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class My_crud {
public function select_from($select, $from) {
// dafaults
$output = "";
// querying
$this->db->select($select);
$this->db->from($from);
$query = $this->db->get();
// if no rows returned
if ($uqery->num_rows == 0) {
return $output = "No Results Found";
}
// if row(s) retunred
return $output = $query->result_array();
}
}
,database
库设置为自动加载。
答案 0 :(得分:3)
如果您要在库中创建它,您应该获得CI的实例,您可以将其添加到__construct
class My_crud
{
var $ci;
public function __construct()
{
$this->ci =& get_instance();
}
}
然后在班级中将您的方法更改为this->db
到$this->ci->db
,问题是为什么当您在模型中创建时,为什么要对库进行讨论?
答案 1 :(得分:1)
如果您想使用CodeIgniter超级对象资源,则需要使用get_instance()
函数,如Utilizing CodeIgniter Resources within your Library中所述。
$CI =& get_instance();
$CI->db->select($select) ...
答案 2 :(得分:0)
你的课需要扩展一些东西。现在设置$this->db
的方式是在$db
类中查找不存在的My_crud
参数。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class My_crud extends CI_Model {
public function select_from($select, $from) {
// defaults
$output = "No Results Found";
// querying
$query = $this->db
->select($select)
->get($from);
if ($query->num_rows() > 0)
$output = $query->result_array();
return $output;
}
}