在oracle DB中,我在表中有CLOB列。 当我执行select命令时,要获取该表的所有数据,结果将仅向我显示DB中注册的第一个CLOB。 例如,我有一个表称为“新闻”。该表具有:
parentFrame
在Oracle中,我有一个函数可以执行:
|---------------------|-----------------------|------------------------|
| New_Id (Number) | New_Title (Varchar2) | New_Content (CLOB) |
|---------------------|-----------------------|------------------------|
| 1 | Title Test 1 | Content test 1 |
|---------------------|-----------------------|------------------------|
| 2 | Title Test 2 | Content test 2 |
|---------------------|-----------------------|------------------------|
| 3 | Title Test 3 | Content test 3 |
|---------------------|-----------------------|------------------------|
| 4 | Title Test 4 | Content test 4 |
|---------------------|-----------------------|------------------------|
我已经测试了此功能,并且工作正常!
php中的PDO:
FOR linha IN (SELECT New_Id, New_Title, New_Content FROM New)
LOOP
outList := news_obj( line.New_Id, line.New_Title, line.New_Content);
pipe row(outList );
END LOOP;
然后设置对象:
public function selectDB($sql,$params=null,$class=null)
{
$query=$this->connect()->prepare($sql);
$query->execute($params);
if(isset($class)){
$rs = $query->fetchAll(PDO::FETCH_CLASS,$class) or die(print_r($query->errorInfo(), true));
}else{
$rs = $query->fetchAll(PDO::FETCH_OBJ) or die(print_r($query->errorInfo(), true));
}
self::__destruct();
return $rs;
}
查询结果正确地显示了new_id和new_title,但是new_content列仅显示了所有数据的第一个数据(内容测试1)。 结果显示如下:
for($i=0; $i < count($array); $i++){
$objNot = new news();
$objNot->setNew_id($array[$i]->NEW_ID);
$objNot->setNew_title($array[$i]->NEW_TITLE);
$objNot->setNew_content(stream_get_contents($array[$i]->NEW_CONTENT));
array_push($array2, $objNot);
}
return array2;
缺少什么?有错吗?