【问题标题】:db query in codeigniter active record returing objectcodeigniter 活动记录返回对象中的 db 查询
【发布时间】:2017-05-18 22:53:17
【问题描述】:

我正在尝试从数据库中提取一列,够简单吧?我正在使用 codeigniter 的活动记录。

我的模型函数

    public function getcolumn($field, $table, $kfield, $key)
    {
      $this->db->select($field);
      $this->db->from($table);
      $this->db->where($kfield, $key);

      $query = $this->db->get();
      $results = $query->result();

      return $results;
    }

我的控制器有:

   public function users()
   { 
     $body['handle'] = $this->admin->getcolumn('handle', 'users', 'userid', $userid)

     $this->load->view('template/header');
     $this->load->view('admin/users', $body);
     $this->load->view('template/footer');
   }

现在当我在我的视图中 print_r 那个变量时,我得到“Array ([0] => stdClass Object ([handle] => Zanigade))”

既然我试图将此函数用作全局“即取即用”函数而无需编写大量函数,为什么它不只返回名称?我究竟做错了什么?我已经玩了 3 个小时的输出,我知道这是一个愚蠢的简单修复,我只是错过了标记。

任何帮助将不胜感激。

【问题讨论】:

  • 好的,所以我意识到将模型函数更改为返回 $results[0];允许我通过使用 $handle->handle 来拉取我的选择.....有没有办法让 $handle 只是答案而不必 ->columnName?我觉得有办法,虽然我可能弄错了
  • 对于数组,您可以在模型中使用 result_array 而不是结果

标签: database codeigniter activerecord


【解决方案1】:

使用像这样的“链接”功能将它们放在一起

$results = this->db->get()->row()->$field;

我们得到()一行(),其中(应该)包含一个名为 $field 的字段。

【讨论】:

  • 谢谢你!这完美地解决了它!是的,因为没有编写 100 个函数来提取所需的数据 lmao……这太简单了,我发誓我正在尝试一切,除了这个 smh……
【解决方案2】:

您似乎返回的是结果而不是单行,试试这个

public function getcolumn($field, $table, $kfield, $key)
{
  $this->db->select($field);
  $this->db->from($table);
  $this->db->where($kfield, $key);

  $query = $this->db->get();

  return $query->row()->$field;
}

有关更多信息,请查看 codeigniter 用户指南 https://www.codeigniter.com/userguide3/database/examples.html

【讨论】:

  • 你好,我已经编辑了代码,试试,其实我的代码有一个小错误,请尝试
猜你喜欢
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 2023-04-01
  • 2019-02-07
  • 1970-01-01
相关资源
最近更新 更多