0

当我试图从我的库中访问一个函数时,我遇到了上述错误,如图所示......

<?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库设置为自动加载。

4

3 回答 3

3

如果你在库中创建它,你应该得到一个 CI 实例,你可以将它添加到你的__construct

class My_crud
{
 var $ci;
 public function __construct()
 {
  $this->ci =& get_instance();
 }
}

然后在您的类中的方法更改this->db$this->ci->db时,问题是当您可以在模型中创建库时,为什么要在库上进行创建?

于 2013-04-09T02:20:12.710 回答
1

如果要使用 CodeIgniter 超级对象资源,则需要使用该get_instance()函数,如Utilizing CodeIgniter Resources in your Library中所述。

$CI =& get_instance();
$CI->db->select($select) ...
于 2013-04-09T02:17:32.293 回答
0

你的类需要扩展一些东西。现在设置的方式是在类中$this->db寻找一个不存在的参数。$dbMy_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;
    }
}
于 2013-04-09T02:00:26.807 回答