【问题标题】:Codeigniter/PHP: Format db query as an arrayCodeigniter/PHP:将数据库查询格式化为数组
【发布时间】:2011-01-05 23:23:30
【问题描述】:
    $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...

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

      当您使用$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

      【讨论】:

        【解决方案3】:

        代替$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();
        

        【讨论】:

          【解决方案4】:

          /** * 格式数据库数组 * * 让您将数据库对象数据格式化为数组

          • @access 公开
          • @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;
          }
          

          }

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-11-08
            • 2012-04-09
            • 2012-10-08
            • 2019-05-19
            • 2014-07-19
            • 1970-01-01
            相关资源
            最近更新 更多