oracle php回滚与多个表

时间:2014-12-18 06:15:24

标签: php oracle

我正在尝试插入包含某些字段的表

$ecode = 1000; 
$location = 'B'; 
$file_id = 1; 
$accessed_on = '30-NOV-14';

我的代码是

$conn = oci_connect('username', 'passwd', '//server/db');    
if (!$conn) {    
    $e = oci_error();    
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);    
} else {     
}    

$query_Test = "
    insert into example(ECODE,LOCATION,FILE_ID,ACCESSED_ON) 
    values($ecode,'$location',$file_id,'$accessed_on')";   

$parse_Test = oci_parse($conn, $query_Test);    
if(oci_execute($parse_Test)) {
    echo 'Success';        
    $query_Test1 = "
        update example     
        set ACCESSED_ON=03-nov-14,    
        where LOCATION='B'";    

    $parse_Test1 = oci_parse($conn, $query_Test1);    

    if(oci_execute($parse_Test1)){      
        oci_rollback($conn);    
    }    
}

但是当query_Test1失败时,它不会回滚query_Test。如何执行此操作。提前帮助。谢谢

1 个答案:

答案 0 :(得分:0)

当你写oci_execute($ test,OCI_DEFUALT)时; 它会起作用。

因为如果你没有通过defualt定义任何第二个参数的AUTO COMMIT 通过定义此参数,它不会自动提交(oci_defualt)或(OCI_NO_AUTO_COMMIT)

之所以没有回滚 如果您提交(保存)您的州,则无法回滚。