代码点火器中的错误 clob (oracle) 值,如何解决


error clob (oracle) value in code igniter, how to solve it?

我的预言机中有数据并从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;会给你值。