sea*_*987 29 php codeigniter object stdclass
我目前遇到PHP问题,我收到此错误,
Object of class stdClass could not be converted to string 当我在我的网站中运行这部分代码时发生错误,
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);
}
Run Code Online (Sandbox Code Playgroud)
发生错误的行是这一行,
$data['user_data'] = $this->auth->get_userdata($this->uri->segment(3));
Run Code Online (Sandbox Code Playgroud)
而这一行正在调用这个函数,
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();
}
}
Run Code Online (Sandbox Code Playgroud)
我现在不知道这个问题是什么,所以任何帮助都会很棒.
Pek*_*ica 37
最有可能的是,该userdata()函数返回一个对象,而不是一个字符串.查看文档(或var_dump返回值)以找出您需要使用的值.
小智 6
我使用codeignator,我得到了错误:
类stdClass的对象无法转换为字符串.
对于这篇文章,我得到了我的结果
我在我的模型部分使用
$query = $this->db->get('user', 10);
return $query->result();
Run Code Online (Sandbox Code Playgroud)
从这篇文章我用
$query = $this->db->get('user', 10);
return $query->row();
Run Code Online (Sandbox Code Playgroud)
我解决了我的问题
一般要摆脱
类 stdClass 的对象无法转换为字符串。
尝试echo '<pre>'; print_r($sql_query);用于我的 SQL 查询得到的结果为
stdClass Object
(
[num_rows] => 1
[row] => Array
(
[option_id] => 2
[type] => select
[sort_order] => 0
)
[rows] => Array
(
[0] => Array
(
[option_id] => 2
[type] => select
[sort_order] => 0
)
)
)
Run Code Online (Sandbox Code Playgroud)
为了访问有不同的方法,例如:num_rows、row、rows
echo $query2->row['option_id'];
Run Code Online (Sandbox Code Playgroud)
将结果为2
小智 5
正如其他人所说,echo 命令无法自行打印对象。因此,您可以考虑使用print_r来显示对象的内容。
所以,就你而言:
print_r($query);
Run Code Online (Sandbox Code Playgroud)