I am having a problem with PHP at the moment, I am getting this error,
Object of class stdClass could not be converted to string
the error occurs when I run this portion of code in my site,
function myaccount() {
$data['user_data'] = $this->auth->get_userdata($this->uri->segment(3));
//var_dump($data['user_data']);
$this->load->model('users_model');
$data['user_info'] = $this->users_model->get_user_and_roadmaps_by_id($this->uri->segment(3));
$this->template->build('users/my_account', $data);
}
The line in which the error is occuring is this one,
$data['user_data'] = $this->auth->get_userdata($this->uri->segment(3));
And this line is calling this function,
function get_userdata() {
$CI =& get_instance();
if(!$this->logged_in()) {
return false;
} else {
$query = $CI->db->get_where('users', array('user_id' => $CI->session->userdata('user_id')));
return $query->row();
}
}
I don't really now what this problem is, so any help would be great.
Most likely, the
userdata()
function is returning an object, not a string. Look into the documentation (or var_dump the return value) to find out which value you need to use.In General to get rid of
try to use
echo '<pre>'; print_r($sql_query);
for my SQL Query got the result asIn order to acces there are different methods E.g.: num_rows, row, rows
Will give the result as 2
try this
I use codeignator and I got the error:
for this post I get my result
I use in my model section
and from this post I use
and I solved my problem
You mentioned in another comment that you aren't expecting your get_userdata() function to return an stdClass object? If that is the case, you should mind this line in that function:
Here, the CodeIgniter database object "$query" has its row() method called which returns an stdClass. Alternately, you could run row_array() which returns the same data in array form.
Anyway, I strongly suspect that this isn't the root cause of the problem. Can you give us some more details, perhaps? Play around with some things and let us know how it goes. We can't play with your code, so it's hard to say exactly what's going on.