1
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:/.........

4

1 回答 1

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

于 2013-04-20T03:23:21.280 回答