我在这里从记录中获取价值时遇到了麻烦。 这就是我想做的事情: 1.从db获取记录 2.将查询结果转换为数组 3.显示数组[0],但得到错误未定义的偏移量:1
var_dump():array(1){[0] => object(stdClass)#23(1){[" nama"] => string(9)"测试名称" }}
自己尝试查询,然后返回一条记录: |用户名| nama | | TESTUSER | Testnama |
那么如何才能获得“测试用户”?
模型/ verify_login_model
function getinfo($username) {
$this->db->select('nama', 'username');
$this->db->from('tb_userInfo');
$this->db->where('username', $username);
$this->db->limit(1);
$result = $this->db->get();
if($result->num_rows()==1) {
return $result->result();
} else {
return false;
}
}
控制器/ verify_login
public function index(){
$this->load->model('verify_login_model');
$username = $this->input->post('username');
$password = $this->input->post('password');
$result = $this->verify_login_model->verify($username, $password);
if($result == $username) {
$row = $this->verify_login_model->getinfo($username);
echo var_dump($row);
$sessiondata = array('name'=>$row[0], 'username'=>$row[1]);
$this->session->set_userdata($sessiondata);
$name = $sessiondata['name'];
$this->load->view('home_view', $name);
} else {
redirect('login');
}
}
查看/ home_view
<html>
<head></head>
<body>
welcome, <?php echo $name?>
</body>
</html>
答案 0 :(得分:0)
当您使用
时,模型会返回一个对象数组return $result->result();
为了将结果作为普通数组使用:
return $result->result_array();
详细了解如何生成查询结果here
答案 1 :(得分:0)
根据CI查询结果显示
https://ellislab.com/codeigniter/user-guide/database/results.html
- &gt; result()此函数将查询结果作为对象数组返回,
stdClass怎么样 - 请查看https://stackoverflow.com/a/931419/2513428
要获得结果,您必须按照以下步骤进行操作
$sessiondata = array('name'=>$row[0]->nama, 'username'=>$row[0]->yourfield);
要想象这一点,就像array(1) { [0]=> object(stdClass)#23 (1) { Your query result } }
一样,获取数据指向对象$var[0]->Object
。但您也可以更改为 result_array(),并将其视为数组,而不是现在的对象。
result_array()
$sessiondata = array('name'=>$row[0]['nama'], 'username'=>$row[0]['yourfield']);
希望这会对你有所帮助。