2

我在我的 oracle 中有数据并从 codeigniter 中检索它

$this->db->select('detail');
$r = $this->db->get($tableName);
$result = $r->result();

打印_r($结果):

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)

为什么第一个数据具有第三个数据的价值?第三个数据变空?

4

1 回答 1

1

在 codeigniter 中只有两件事需要记住。

如果您知道只有一行数据要返回,那么您必须使用row_array().In 您的情况$result = $r->row_array();并检索其值,您将使用$result['column_name'];.

在多行的情况下,我们使用 result(),在您的情况下$result = $r->result();,您必须以这种方式遍历这些多行foreach $result as $val { $val->column_name; }$val->column_name;将为您提供值。

于 2012-10-15T19:49:30.097 回答