我的预言机中有数据并从codeigniter检索它
$this->db->select('detail');
$r = $this->db->get($tableName);
$result = $r->result();
print_r($result) :
Array
(
[0] => stdClass Object
(
[DETAIL] => OCI-Lob Object
(
[descriptor] => Resource id #80
)
)
[1] => stdClass Object
(
[DETAIL] =>
)
[2] => stdClass Object
(
[DETAIL] => OCI-Lob Object
(
[descriptor] => Resource id #80
)
)
)
数据模型:
function get_ora_blob_value($value)
{
$size = $value->size();
$result = $value->read($size);
return ($result)?$result:NULL;
}
检索数据 :
echo $this->data->get_ora_blob_value($result[0][DETAIL]); // should be 'remark1'
echo "<br />";
echo $this->data->get_ora_blob_value($result[1][DETAIL]); // should be null
echo "<br />";
echo $this->data->get_ora_blob_value($result[2][DETAIL]); // should be 'remark2'
印刷:
remark2
(empty)
(empty)
为什么第一个数据具有第三个数据的价值?而第三个数据变为空?
在代码点火器中只有两件事需要记住。
如果您知道只有一行数据要返回,则必须使用row_array().
在您的情况下$result = $r->row_array();
并检索其值,您将使用 $result['column_name'];
。
在多行的情况下,我们使用 result(),在你的例子中$result = $r->result();
你必须以这种方式遍历这些多行 foreach $result as $val { $val->column_name; }
,$val->column_name;
会给你值。