Codeigniter 消息:对非对象调用成员函数result_array()
我是Codeigniter的新手,我仍然在关注DB交互。我不知道为什么这会给我一个错误,我认为这是查询的原因,但是我可以直接对数据库运行它,而不会出现错误。有什么想法吗Codeigniter 消息:对非对象调用成员函数result_array(),codeigniter,Codeigniter,我是Codeigniter的新手,我仍然在关注DB交互。我不知道为什么这会给我一个错误,我认为这是查询的原因,但是我可以直接对数据库运行它,而不会出现错误。有什么想法吗 public function getLastSafetyTraining() { $query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d
public function getLastSafetyTraining()
{
$query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d WHERE t.channel_id = 27 AND t.entry_id = d.entry_id";
$result = $this->db->query($query);
foreach ($result->result_array() as $row)
{
echo $row['date'];
echo $row['instructor'];
}
}
正在添加成功的数据库调用:
public function getListOfInstructors()
{
$query = $this->db->select('member_id, email, group_id')
->where('group_id >', 7)
->limit(10, 20)
->get('exp_members');
return $query->result_array();
}
该错误可能是由于查询(以及结果()对象)为空。在尝试使用result()对象之前,请确保查询实际返回至少一条记录: 实际上,回音部分必须在视图中完成,只有将结果返回给控制器 在控制器中加载上述模型并调用模型函数
$var = $this->model->function();
操纵结果,然后将数据传递到视图并在其中进行回送
更清楚地说,不要从模型中回显模型[where all query part is done]中的任何内容,只返回查询结果,以确保我们使用if条件并将结果返回给控制器
该模型必须加载到控制器中,并从模型中获取这些返回值,所以我们使用
$this->load->model('nameof model')
然后获取这些值并将其保存在变量中作为
$var = $this->model->function(); //now pass this to view after manipulating it as and echo in view
在你的模型中,你必须这样做
public function getLastSafetyTraining()
{
$query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d WHERE t.channel_id = 27 AND t.entry_id = d.entry_id";
$result = $this->db->query($query);
$count = count($result);
if(empty($count) || $count > 1)
{
$log = 0;
return $log ;
}
else
{
return $result;
}
}
你的控制器
public function getListOfInstructors()
{
$this->load->model('Name of your model');
$result = $this->Name_of_model->Name_of_function_of_model();
if($result==0) {
echo "Nothing found";
}
else {
$data['var']=$result;
$this->load->view('header');
$this->load->view("your view", $data);
}
}
该错误可能是由于查询(以及结果()对象)为空。在尝试使用result()对象之前,请确保查询实际返回至少一条记录: 实际上,回音部分必须在视图中完成,只有将结果返回给控制器 在控制器中加载上述模型并调用模型函数
$var = $this->model->function();
操纵结果,然后将数据传递到视图并在其中进行回送
更清楚地说,不要从模型中回显模型[where all query part is done]中的任何内容,只返回查询结果,以确保我们使用if条件并将结果返回给控制器
该模型必须加载到控制器中,并从模型中获取这些返回值,所以我们使用
$this->load->model('nameof model')
然后获取这些值并将其保存在变量中作为
$var = $this->model->function(); //now pass this to view after manipulating it as and echo in view
在你的模型中,你必须这样做
public function getLastSafetyTraining()
{
$query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d WHERE t.channel_id = 27 AND t.entry_id = d.entry_id";
$result = $this->db->query($query);
$count = count($result);
if(empty($count) || $count > 1)
{
$log = 0;
return $log ;
}
else
{
return $result;
}
}
你的控制器
public function getListOfInstructors()
{
$this->load->model('Name of your model');
$result = $this->Name_of_model->Name_of_function_of_model();
if($result==0) {
echo "Nothing found";
}
else {
$data['var']=$result;
$this->load->view('header');
$this->load->view("your view", $data);
}
}
您可以按以下方式修改代码:
public function getLastSafetyTraining()
{
$query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d WHERE t.channel_id = 27 AND t.entry_id = d.entry_id";
$result = $this->db->query($query);
print_r($result); die; // this is added line for debug
foreach ($result->result_array() as $row)
{
echo $row['date'];
echo $row['instructor'];
}
}
您可以通过这样做进行调试,如果您不能在这里编写输出打印的内容,我将给出您的代码的确切问题 您可以按如下方式修改代码:
public function getLastSafetyTraining()
{
$query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d WHERE t.channel_id = 27 AND t.entry_id = d.entry_id";
$result = $this->db->query($query);
print_r($result); die; // this is added line for debug
foreach ($result->result_array() as $row)
{
echo $row['date'];
echo $row['instructor'];
}
}
您可以通过这样做进行调试,如果您不能在这里编写输出打印的内容,我将给出您的代码的确切问题 你们说得对,我得到的结果集是空的。但是,我可以通过PHPMyAdmin运行该查询并获得结果,那么CI中的查询有什么问题?@user1684180奇怪,您是否正确加载了数据库配置并尝试将查询打印为print\r($query);是的,因为我的控制器在此之前调用了一个模型函数,该函数从数据库返回值。我将更新原始帖子以包含此内容。@user1684180您使用了错误的方式,我将更新我的答案如何do@user1684180当这个函数getListOfInstructors()在model或Controllery中时,你们是对的,我得到的结果集是空的。但是,我可以通过PHPMyAdmin运行该查询并获得结果,那么CI中的查询有什么问题?@user1684180奇怪,您是否正确加载了数据库配置并尝试将查询打印为print\r($query);是的,因为我的控制器在此之前调用了一个模型函数,该函数从数据库返回值。我将更新原始帖子以包含此内容。@user1684180您使用了错误的方式,我将更新我的答案如何do@user1684180其中,函数getListOfInstructors()位于模型或控制器中