$stmt = OCIParse($conn,"INSERT INTO news (id,title,content1,picture) VALUES (seq_news.NEXTVAL,'$title','$btext_type',EMPTY_BLOB()) RETURNING picture INTO :PICTURE");
$lob = OCINewDescriptor($conn,OCI_D_LOB);
OCIBindByName($stmt, ':PICTURE',&$lob,-1,OCI_B_BLOB);
OCIExecute($stmt);
if($lob->savefile($btext)){
OCICommit($conn);
echo "上传成功〈br〉";
}else{
echo "上传失败〈br〉";
} 各位大侠,看看程序有什么问题?????????????
$lob = OCINewDescriptor($conn,OCI_D_LOB);
OCIBindByName($stmt, ':PICTURE',&$lob,-1,OCI_B_BLOB);
OCIExecute($stmt);
if($lob->savefile($btext)){
OCICommit($conn);
echo "上传成功〈br〉";
}else{
echo "上传失败〈br〉";
} 各位大侠,看看程序有什么问题?????????????
php中如何同时向oracle插入多个clob类型列数据?
hoomail 发表于 2002-5-30 16:38 PHP编程代码是:
$sql="insert into articles(1,"你好",EMPTY_CLOB(),EMPTY_CLOB()) RETURNING(content_1,content_2) INTO(:content_1,:content_2)";
$oracle_exec = OCIParse($oracle_conn,$sql);
$lob = OCINewDescriptor($oracle_conn, OCI_D_LOB);
$ccc = OCINewDescriptor($oracle_conn, OCI_D_LOB);
OCIBindByName($oracle_exec,':content_1',&$lob,-1,OCI_B_CLOB); OCIBindByName($oracle_exec,':content_2',&$ccc,-1,OCI_B_CLOB);
if(!OCIExecute($oracle_exec,OCI_DEFAULT)){
echo " Execution failed";
exit;
}
if($lob->save($row[3])){
OCICommit($oracle_conn);
echo $row["id"]." content_1 上传成功 ";
}else{
echo $row["id"]."content_1 上传失败 ";
}
if($ccc->save($row[17])){
OCICommit($oracle_conn);
echo $row["id"]." count_2 上传成功 ";
}else{
echo $row["id"]." count_2 上传失败 ";
}
OCIFreeDesc($lob);
OCIFreeDesc($ccc);
结果,content_1数据入库,content_2没有入库,还报错:
Warning: OCILobWrite: ORA-22990: LOB locators cannot span transactions in ****************
请各位大侠指点!
PHP插入CLOB类型不能直接插!
蓝蝴蝶 发表于 2002-5-30 17:08 PHP编程 ←返回版面 [快速返回] $stmtJBXX = OCIParse($Conn,$strJBXX);
$objJBXX = OCINewDescriptor($Conn, OCI_D_LOB);
OCIBindByName($stmtJBXX, ':C_JYJS', &$objJBXX, -1, OCI_B_CLOB);
OCIExecute($stmtJBXX,OCI_DEFAULT);
if($objJBXX->save($C_JYJS)){
OCICommit($Conn);
}
//释放LOB对象
OCIFreeDesc($objJBXX);
OCIFreeStatement($stmtJBXX);以上代码仅供参考,要用OCINewDescriptor进行解释后才可以将
':C_JYJS'大文本存入,注意类型:很重要,与CONN对象连接时用OCI_D_LOB类型,绑定时用OCI_B_CLOB。多试几次。