我目前正在使用codeigniter ona PHP项目,我正在使用的库之一返回数据库结果的对象,如下所示,
stdClass Object
(
[user_id] => 2
[firstname] => John
[surname] => Doe
[email] => jonh.doe@emailaddress.info
[password] => 9d210a03bed920971fefab01b8f84a27
[postcode] => W1 5ST
[date_registered] => 2021-04-11 10:56:47
[last_logged_in] => 2011-05-04 11:56:03
[user_type_id] => 2
)
然后我尝试使用以下代码回显值,我通过执行以下操作将用户发送到我的视图,
$data['users'] = $this->users_model->get_by($this->session->userdata('user_id');
$this->load->view('view', $data);
然后在我看来,我正在做以下事情,
echo $users->firstname;
但是我在页面顶部出现以下错误,
遇到PHP错误严重性:4096消息:类stdClass的对象无法转换为字符串文件名:libraries / Parser.php行号:63
我该如何解决这个问题?不改变理想情况下返回数据库结果的方式 .
4 回答
您无法直接回显对象 . 在回显之前创建方法__toString()或serialize对象 .
你走在正确的轨道上 . 一些东西 .
你在这一行中错过了一个结束 .
此外,很难知道用户模型返回的内容 . 你能提供$ this-> users_model-> get_by()的代码吗?这就是你的问题所在 .
确保您的数据库查询按预期返回对象 . 您可能需要添加 - > row() .
也许是因为你在你的视图中发送一个名为“users”的变量..但在你的视图中你调用变量$ user而不是$ users
如果不是...... doc on views说:
祝好运!
对于Codeigniter,您需要调用$ users-> result(),$ users-> result_array(),$ users-> row()或$ users-> row_array()来访问DB结果对象数据
http://codeigniter.com/user_guide/database/results.html
假设返回一行: