奇怪的行为,Codeigniter数据库

时间:2015-10-19 06:57:50

标签: php codeigniter

代码:

function foo ( $param )
{
    $this->ci->db->select (  '*'  );
    $this->ci->db->from ( $this->tableUser [ 'table' ] . ' as u' );
    $this->ci->db->where ( 'u.' . $this->tableUser [ 'column' ] [ 'id' ], $param );
    $query = $this->ci->db->get (  );
    if ( ! $query ) { throw new Exception ('Something went wrong') }
    $data = $query->unbuffered_row ('array');
    var_dump($data);

    $data [  $this->tableUser [ 'username' ]  ]
}

var_dump()的结果:

array(29) { 
    ["id"]=> string(1) "1" 
    ["id_user_groups"]=> string(1) "3" 
    ["email"]=> string(16) "demo@example.com" 
    ["username"]=> string(7) "Demouser" 
    ["password"]=> string(60) "$2y$10$fi0zUzFlMm9QJEV5ZVo9eQMQMYApytT1asiePbSB9y" 
    ["ip_address"]=> string(9) "127.0.0.1" 
    ...
    ...
} NULL 

正如你所看到的,函数foo()正常工作,var_dump()结果也很好,$ data是一个关联数组,但仍在行$data [ $this->tableUser [ 'username' ] ]我得到以下内容错误。 为什么?

  

遇到PHP错误

     

严重性:注意

     

消息:未定义索引:用户名

     

文件名:User / User.php

     

行号:439

1 个答案:

答案 0 :(得分:1)

替换此行,

$data [$this->tableUser['username']]

$data ['username'];

如果您想使用$this->tableUser,请先echo $this->tableUser;并查看其中的内容。