Codeigniter/PHP: 将数据库查询格式化为数组

4
    $this->db->select('id, user_id')->from('be_users')->where('id',$user_id);
    $data['user_individual'] = $this->db->get();

如果这是我的数据库查询,我如何获取一个数据库行的数组...
也就是说,我想做像$data['user_individual']['id']-> format_as_array这样的事情...
4个回答

31

CodeIgniter提供了几个方法来执行查询结果。

请参见:https://codeigniter.com/user_guide/database/results.html

result() 返回一个由PHP对象构成的数组。

row() 返回该行的单个PHP对象。

result_array() 返回一个由数组构成的数组。

row_array() 返回该行的单个数组。

row()row_array() 可以选择使用一个参数,该参数是您要返回的行数。

除此以外,很难确切地知道您需要什么。使用这些方法应该可以按照您的喜好获取数据。

编辑:

顺便提一下,访问这些方法的方式是通过从$this->db->get()调用返回的查询对象:

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

$rows = $query->result(); //array of objects
$rows_array = $query->result_array(); //array of arrays
$row = $query->row(); //single object
$row_array = $query->row_array(); //single array

1

当您使用$this->db->get();时,您可以使用$this->db->result();,它将返回一个数组对象。

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

foreach ($query->result() as $row)
{
    echo $row->title;
}

请参考http://codeigniter.com/user_guide/database/results.html了解如何从数据库中获取结果集的详细信息。

0

不要使用 $this->db->get(),而是使用 $this->db->row_array();

$this->db->select('id, user_id')->from('be_users')->where('id',$user_id);
$data['user_individual'] = $this->db->row_array();

0

/** * format_database_array * * 允许您将数据库对象数据格式化为数组

  • @access public
  • @param String $db_object:数据库查询对象
  • @return String:返回包含数据的数组 */

if(!function_exists('format_database_array')) {

    function format_database_array($db_object)
{
    $db_array = array();

    if($db_object-> num_rows >0)
    {
        foreach ($db_object->result_array() as $row)
        {
            foreach ($row as $key => $value)
            {
                $db_array[$key] = $value;
            }
        }
    }

    return $db_array;
}

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接