PHP.mk документација

oci_rollback

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.oci-rollback.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека function.oci-rollback.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
oci_rollback

Референца за `function.oci-rollback.php` со подобрена типографија и навигација.

function.oci-rollback.php

oci_rollback

Класата OCICollection

oci_rollbackЈа враќа тековната трансакција во базата на податоци

= NULL

oci_rollback(resource $connection): bool

Ги враќа сите незачувани промени за Oracle connection и ја завршува трансакцијата. Ги ослободува сите задржани заклучувања. Сите Oracle SAVEPOINTS се бришат.

Трансакцијата започнува кога првиот SQL исказ што менува податоци се извршува со oci_execute() користејќи го OCI_NO_AUTO_COMMIT знаменце. Понатамошните промени на податоците направени од други искази стануваат дел од истата трансакција. Промените на податоците направени во трансакција се привремени додека трансакцијата не се потврди или поништи. Другите корисници на базата на податоци нема да ги видат промените додека не се потврдат.

При вметнување или ажурирање податоци, се препорачува користење трансакции за конзистентност на релационите податоци и од причини за перформанси.

Параметри

connection

или со поставување на променливата на oci_connect(), oci_pconnect() or oci_new_connect().

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Примери

Пример #1 oci_rollback() 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);
}

?>

Пример #2 Враќање на SAVEPOINT example

<?php
$stid
= oci_parse($conn, 'UPDATE mytab SET id = 1111');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Create the savepoint
$stid = oci_parse($conn, 'SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

$stid = oci_parse($conn, 'UPDATE mytab SET id = 2222');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Use an explicit SQL statement to rollback to the savepoint
$stid = oci_parse($conn, 'ROLLBACK TO SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

oci_commit($conn); // mytab now has id of 1111
?>

Белешки

Забелешка:

Трансакциите автоматски се поништуваат кога ќе ја затворите врската или кога ќе заврши скриптата, кое и да е порано. Треба експлицитно да повикате oci_commit() за да ја потврдите трансакцијата.

Секое повикување на oci_execute() што користи OCI_COMMIT_ON_SUCCESS режимот експлицитно или по дифолт ќе ја потврди секоја претходна непотврдена трансакција.

Секој Oracle DDL исказ како CREATE or DROP автоматски ќе ја потврди секоја непотврдена трансакција.

Види Исто така

  • oci_commit() - Ја потврдува тековната трансакција во базата на податоци
  • oci_execute() е валиден SQL или PL/SQL исказ е да се изврши.

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.