调用result_array()会破坏表..?

时间:2012-11-02 13:50:49

标签: php codeigniter

我想要一次点击数据库,然后返回一个MySQL资源和一个数组。我的控制器中有以下代码来执行此操作:

$result = $this->data->my_method();

$data['result_resource'] = $result;
$data['result_array']    = $result->result_array();

在我看来,我打电话给以下人员:

$this->table->generate($result_resource);

$data['result_array']行被注释掉时,该表按预期工作(即列标题显示),但当$data['result_array']注释掉时, result_resourceresult_array转向数组。这里发生了什么,以及如何避免它?

$ data数组以典型的CI方式传递给视图:

$this->load->view('view.php', $data);

运行该方法两次确实解决了问题,但我不想这样做。

1 个答案:

答案 0 :(得分:0)

关于result_array()被“消耗”的东西是无意义的 - 它只是一个根本没有运行的对象。你可以一遍又一遍地使用它

我把你的代码放到一个控制器中 - 包括table-> generate() - 一切都运行得很好。

$ result是包含连接资源等的基础对象。真的不是你想要使用的。它的工作原理是因为表库已设置好,如果你传递了它,它会为你寻找result_array(),但它实际上并不是标准的做法。

我认为你的代码中有其他东西你已经看过去导致了麻烦。尝试删除$ result代码,然后运行:

$result = $this->data->my_method();
$data['result_array']    = $result->result_array();
var_dump($data['result_array']);
echo $this->table->generate($data['result_array']);

并检查一切看起来是否正常。我怀疑你会在某个时候做一个facepalm: - )