从多列中选择:codeIgniter

ser*_*i12 3 php database codeigniter

我想使用codeIgniter活动记录在表中选择多个列.选择使用

    $this->db->select('*');
    $this->db->from($this->table_name);
Run Code Online (Sandbox Code Playgroud)

但是选择一些列,例如

   $this->db->select('username','email','last_login','created','modified','group_id');
    $this->db->from($this->table_name);
Run Code Online (Sandbox Code Playgroud)

不起作用.它只返回一个包含第一列值的数组.我怎么这么做?

根据codeIgniter用户指南,他们给出了以下示例.所以我认为它应该适用于我的情况.

$this->db->select('title, content, date');

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

// Produces: SELECT title, content, date FROM mytable
Run Code Online (Sandbox Code Playgroud)

Wes*_*rch 6

第二个查询将无法正常工作,因为select()需要将字符串或数组作为第一个参数,而不是采用无限制的参数.在您的示例中,仅username选择.正确的字符串语法是这样的:

$this->db->select('username, email, last_login, created, modified, group_id');
Run Code Online (Sandbox Code Playgroud)

我可以与你分享更多内容,但我建议你通过Active Record文档再读一两次.祝你好运,并享受Codeigniter!

编辑后:请注意这两个例子的不同之处:

1 - 此行将每列作为单独的参数传递:

$this->db
    ->select('username','email','last_login','created','modified','group_id');
Run Code Online (Sandbox Code Playgroud)

2 - 此行正确传递一个参数(逗号分隔的字符串):

$this->db
    ->select('username, email, last_login, created, modified, group_id');
Run Code Online (Sandbox Code Playgroud)

请注意(正确)示例2中每个列名称周围没有引号.在示例1中,有几个参数传递给函数,只使用了第一个参数,而其余参数被忽略.