Php 严重性:4096消息:类CI_DB_mysql_结果的对象无法转换为字符串

Php 严重性:4096消息:类CI_DB_mysql_结果的对象无法转换为字符串,php,mysql,arrays,codeigniter,Php,Mysql,Arrays,Codeigniter,我无法获得查询的字符串结果…如何解决它 型号: class Get_info extends CI_Model { function Get_info() { parent::__construct(); $this->load->database(); } function getFirstName($email){ $query_id=$this->db->query("SELECT user_id FROM us

我无法获得查询的字符串结果…如何解决它

型号:

class Get_info extends CI_Model {

  function Get_info() {
    parent::__construct(); 
    $this->load->database();

  }


  function getFirstName($email){
        $query_id=$this->db->query("SELECT user_id FROM user WHERE email='$email'");
        $query=$this->db->query("SELECT firstname FROM `user_info` WHERE id='$query_id'");
        var_dump($query->row());
        return $query->result();

  }
}
控制器:

$email = $this->input->post('email');
$this->load->model('get_info'); 
$result = $this->get_info->getFirstName($email);
$profile = $result[0];

$newdata = array(
        'email' =>  $email,
        'firstname' => $profile
        );
$this->load->library('session');
$this->session->set_userdata( $newdata );
当我在模型中调用var_dump$query时,它会这样回答:objectCI_DB_mysql_result23 8{[conn_id]=>resource62类型mysql link persistent[result_id]=>resource91类型mysql result[result_array]=>array0{}[result_object]=>array0{}[custom_result_object]=>array0{}[current_row]=>int0[num rows]=>int0[row_data]>NULL}

当我在控制器中调用var_dump$profile时,它会回答我:array0{}

我的错在哪里?我只想从查询中获取字符串文本并将其放在数据会话中。

$query=$this->db->query从user\u infoWHERE id='$query\u id'中选择firstname

这里$query\u id是上一次查询的结果,而不是INT

您应该这样做,同时保护您的查询:

您也可以选择AR,甚至可以进行唯一查询:

编辑了上面的查询并将结果更改为行,因为您只查找一条记录。现在,您的其他代码也必须更改:

$result = $this->get_info->getFirstName($email);
$newdata = array(
             'email' =>  $result->email,
             'firstname' => $result->firstname
           );

它返回另一个错误:array1{[0]=>objectstdClass23 1{[firstname]=>string3 awq}}致命错误:在第16行的S:\home\test1.ru\www\application\models\Get_info.php中调用非对象上的成员函数结果
return $this->db->select('user_info.firstname, user.email')
         ->from('user_info')
         ->join('user', 'user.user_id = user_info.id')
         ->where('user.email', $email)
         ->get()
         ->row();
$result = $this->get_info->getFirstName($email);
$newdata = array(
             'email' =>  $result->email,
             'firstname' => $result->firstname
           );