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:/.........
答案 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