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

时间:2011-01-05 23:23:30

标签: php codeigniter

    $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 个答案:

答案 0 :(得分: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 :(得分: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

答案 2 :(得分: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();

答案 3 :(得分: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;
}

}