$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链接不上MYSQL
- 文件下载问题-有的word文件下载后乱码或显示警告,代码如下。求指点。。。
- PHP里如何获取函数的调用者名称
- 如何用DOM 在WORD 中插入图片
- 《PHP程序设计》中的例子运行出错,请教高手。
- php,如何实现防止用户重复登陆?
- 菜鸟问题:mysql数据库的表中字段content的值为aaaaa&bbbbb&cccccc&dddddd,我现在想要查找包括 cccccc的记录,语句怎么写?
- 在Win2003下,PHP4.3.11+Apache1.3.31 + SQLServer2000(sp4) 无法连接数据库????
- 我的大漏洞!
- 关于在PHP中创建图象的问题
- 在先等!请问如何取到phpinfo()中打印出来的系统变量
- linux C写的静态库文件如何在PHP中编译?(好让PHP扩展调用这个库)
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。多试几次。