$conn = OCILogon(C('DB_USER'), C('DB_PWD'), C('DB_HOST'));
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}
$stmt = @OCIParse($conn,"insert into JZ_(id,web_id,mylob) values('99993','999993',EMPTY_CLOB()) RETURNING mylob INTO:CONTENT");
$clob = @OCINewDescriptor($conn,OCI_D_LOB);
OCIBindByName($stmt,':CONTENT',&$clob,-1,OCI_B_CLOB);
if(!OCIExecute($stmt, OCI_DEFAULT)) {print_r(OCIError($stmt));}
if($clob->save('dd')) //dd是需要插入的数据
{
OCICommit($conn);
}
else
{
print_r(OCIError($stmt));
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}
$stmt = @OCIParse($conn,"insert into JZ_(id,web_id,mylob) values('99993','999993',EMPTY_CLOB()) RETURNING mylob INTO:CONTENT");
$clob = @OCINewDescriptor($conn,OCI_D_LOB);
OCIBindByName($stmt,':CONTENT',&$clob,-1,OCI_B_CLOB);
if(!OCIExecute($stmt, OCI_DEFAULT)) {print_r(OCIError($stmt));}
if($clob->save('dd')) //dd是需要插入的数据
{
OCICommit($conn);
}
else
{
print_r(OCIError($stmt));
}
悲剧的是只能一个字段插入。第二个就不行了。最后没有办法。我就存储为文件来解决3个lob字段数据。然后通过id来寻址txt文本
这个问题在oracle11是没有这个问题的。lob字段直接写入。这个就是老版本的问题。无法逃避。只能说php连接oracle是一个弊端。