我正在尝试插入包含某些字段的表
$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。如何执行此操作。提前帮助。谢谢
答案 0 :(得分:0)
当你写oci_execute($ test,OCI_DEFUALT)时; 它会起作用。
因为如果你没有通过defualt定义任何第二个参数的AUTO COMMIT 通过定义此参数,它不会自动提交(oci_defualt)或(OCI_NO_AUTO_COMMIT)
之所以没有回滚 如果您提交(保存)您的州,则无法回滚。