如何从CodeIgniter中的PDO查询中访问result_array()函数返回的这些数据?

时间:2013-04-20 03:03:54

标签: sql arrays codeigniter pdo

public function get_details($id)
{
    //my query in pdo form getting my records       
    $query = $this->db->query("SELECT * FROM users WHERE idno='". $id ."'");

    //check if query is successfull
if($query)
{
    $query->result_array();//get the result through array form
    print_r($query);//prints the array
}
// end if
}//end function

上面代码的结果如下:     CI_DB_pdo_result Object ( [num_rows] => 1 [conn_id] => PDO Object ( ) [result_id] => PDOStatement Object ( [queryString] => SELECT * FROM users WHERE idno='888812' ) [result_array] => Array ( [0] => Array ( [idno] => 888812 [lname] => smith [fname] => john [username] => john [password] => password [usertype] => a [status] => a ) ) [result_object] => Array ( ) [custom_result_object] => Array ( ) [current_row] => 0 [row_data] => )

通常result_array()函数的结果只是正在执行的游标/结果查询的数组,现在我有一个问题就是如何从这种结果生成的result_array()返回我的值不同的数据以及它。

通常结果将是Array([id] => 888812, [lname] => smith, [fname] => john, [username] => john, [password] => password.....)所以现在,为什么我会在上面显示这种数组?以及如何访问我的数据?

每当我访问$query['result_array']$query['idno']等数据时,都会收到此错误消息 Fatal error: Cannot use object of type CI_DB_pdo_result as array in C:/.........

1 个答案:

答案 0 :(得分:1)

$query->result_array();//get the result through array form

您没有将result_array()的返回结果分配给任何内容。因此,当您运行print_r($query)时,您在原始查询对象上执行此操作,而不是结果。 result_array()不会通过引用或任何内容更改查询对象,您需要捕获其结果。

$results = $query->result_array();
print_r($results);

多喝点咖啡或其他东西。 :-P