我正在尝试设置一个自定义的Userdata变量 - 实际上是一个数组。
我根据表单输入查询了MYSQL UserTable,并返回 作为结果的记录_array。
$this->session->set_userdata( 'Login', $ResultofUserMatch );
userdata会话变量的转储如下:
[userdata] => Array
(
[session_id] => fda0d4f9a5b90c813b0850fa6e651b20
[ip_address] => aa.bb.cc.dd
[user_agent] => Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100
[last_activity] => 1319892314
[Login] => Array
(
[0] => Array
(
[ID] => 802
[Care Center Name] => george
[w3user] => georgewnyc@mail.com
[w3pass] => george
[w3code] => none
[role] => admin
)
)
)
请注意,包含Login数组,但数据位于INDEX 0 - 所以他们在登录[0] [角色]。
我做错了吗?如何让数据“上升一级”?
答案 0 :(得分:1)
当你得到结果集时,你应该调用$query->row()
而不是$query->result()
来获取结果集中的第一行,result()
返回集合中所有结果的数组。
$query = $this->db->select('*')->from('userTable')->get();
$ResultofUserMatch = ($query->num_rows() !== 0 ? $query->row() : false);
if($ResultofUserMatch)
$this->session->set_userdata( 'Login', $ResultofUserMatch );