oci_commit
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
oci_commit
Референца за `function.oci-commit.php` со подобрена типографија и навигација.
oci_commit
Класата OCICollection
oci_commit — Ги потврдува отворените трансакции во базата на податоци
= NULL
Ги потврдува отворените трансакции за Oracle connectionПотврдувањето ја завршува тековната трансакција и ги прави сите промени трајни. Ги ослободува сите задржани заклучувања.
Трансакцијата започнува кога првиот SQL исказ што менува податоци се извршува со oci_execute() користејќи го OCI_NO_AUTO_COMMIT знаменце. Понатамошните промени на податоците направени од други искази стануваат дел од истата трансакција. Промените на податоците направени во трансакција се привремени додека трансакцијата не се потврди или поништи. Другите корисници на базата на податоци нема да ги видат промените додека не се потврдат.
При вметнување или ажурирање податоци, се препорачува користење трансакции за конзистентност на релационите податоци и од причини за перформанси.
Параметри
connection-
или со поставување на променливата на oci_connect(), oci_pconnect(), или oci_new_connect().
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Примери
Пример #1 oci_commit() example
<?php
// Insert into several tables, rolling back the changes if an error occurs
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");
// The OCI_NO_AUTO_COMMIT flag tells Oracle not to commit the INSERT immediately
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
$e = oci_error($stid);
oci_rollback($conn); // rollback changes to both tables
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
// Commit the changes to both tables
$r = oci_commit($conn);
if (!$r) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>Белешки
Забелешка:
Трансакциите автоматски се поништуваат кога ќе ја затворите врската или кога ќе заврши скриптата, кое и да е порано. Треба експлицитно да повикате oci_commit() за да ја потврдите трансакцијата.
Секое повикување на oci_execute() што користи
OCI_COMMIT_ON_SUCCESSрежимот експлицитно или по дифолт ќе ја потврди секоја претходна непотврдена трансакција.Секој Oracle DDL исказ како
CREATEorDROPавтоматски ќе ја потврди секоја непотврдена трансакција.
Види Исто така
- oci_execute() е валиден SQL или PL/SQL исказ е да се изврши.
- oci_rollback() - Ги поништува отворените трансакции во базата на податоци