2

オラクルにデータがあり、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)

なぜ最初のデータが3番目のデータの価値を持っているのですか?そして3番目のデータは空になりますか?

4

1 に答える 1

1

codeigniter で覚えておくべきことは 2 つだけです。

返されるデータが1行しかないことがわかっている場合は、row_array().In your case$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 に答える