使用mysql,我可以在一个文本列中存储大量的文本,像处理任何其他列类型一样拉取。
当我尝试对oracle上的clob做同样的操作时,似乎会得到错误。
我要说的是:
<?php
$comments = 'SELECT q2_other, q4_comments, q9_describe, q10, q11_comments, q12_describe, additional_comments FROM exit_responses
WHERE sdate BETWEEN \'' . $start . '\'
AND \'' . $end . '\'';
$comments_results = oci_parse($conn, $comments);
oci_execute($comments_results);
while($row = oci_fetch_assoc($comments_results)){
if($row['Q2_OTHER'] != null){
echo '<div class="response">';
echo '<div class="info-bar">';
echo '<h5 class="date">' , date('F j, Y',strtotime($row['SDATE'])) , '</h5>';
echo ($_GET['names'] == 1) ? '<h5 class="name">' . $row['f_name'] . ' ' . $row['l_name'] . ' - ' . $row['title'] . ' - ' . $row['emp_type'] . '</h5>' : '';
echo '<div class="clear"></div>';
echo '</div>';
echo '<div class="comments">' , $row['q2_other'] , '</div>';
echo '<div class="clear"></div>';
echo '</div>';
}
}
?>
…下面是当我试图在while()循环中打印r()$row时得到的结果:
[Q2_OTHER] => OCI-Lob Object
(
[descriptor] => Resource id #17
)
…(以及查询中的其他列)
我需要用clobs做些什么特别的事情吗?或者我的语法有点不对劲。
谢谢:)
最佳答案
对于lob columns,oci将返回oci lob对象,在该对象上必须调用load()
或read(int bytes)
才能获取内容:
$clob_contents = $row['Q2_OTHER']->load();