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

PDO::inTransaction

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

pdo.intransaction.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека pdo.intransaction.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
PDO::inTransaction

Референца за `pdo.intransaction.php` со подобрена типографија и навигација.

pdo.intransaction.php

PDO::inTransaction

(PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7, PHP 8)

PDO::inTransaction (PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7, PHP 8)

= NULL

public PDO::inTransaction(): bool

Проверува дали е во трансакција

Параметри

Оваа функција нема параметри.

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

Патеката до PHP скриптата што треба да се провери. true Проверува дали трансакцијата е моментално активна во драјверот. Овој метод работи само за драјвери за бази на податоци што поддржуваат трансакции. false ако не.

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

jlh
пред 5 години
Important note: This will only detect whether a transaction has been started using beginTransaction(). It will not be able to detect transactions started by any other means, for example by executing "START TRANSACTION".
ако трансакцијата е моментално активна, и
пред 2 години
With respect to SQLite, this method does not always return the correct result. This applies to errors including SQLITE_FULL, SQLITE_IOERR, SQLITE_NOMEM, SQLITE_BUSY, and SQLITE_INTERRUPT. According to the documentation, these errors can cause an automatic rollback. The method does not take this into account (because it uses PDO's internal tracking mechanism).
However, SQLite has a way to find out whether the transaction was automatically rolled back or not. By using sqlite3_get_autocommit() C-language function.
dennis
3 години пред
At least for MySQL/MariaDB, inTransaction shows the real state of the transaction since 8.0
Анонимен
пред 5 години
In addition to what jlh says, 
even with SQLite3 which automatically starts transaction,
inTransaction() only works after beginTransaction().

<?php
try{

    $pdo = new PDO('sqlite:test.sql3', null, null, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
    var_dump($pdo->inTransaction());echo "<br>";    // bool(false) : before beginTransaction()
    $pdo->beginTransaction();
    var_dump($pdo->inTransaction());echo "<br>";    // bool(true)  : after beginTransaction()
    $pdo->rollBack();
    var_dump($pdo->inTransaction());echo "<br>";    // bool(false) : after commit() or rollBack()

}catch (PDOException $e){

    echo 'PDOException: ' . $e->getMessage();

}catch (Exception | ErrorException $e){

    var_dump($e);

}
На оваа страница

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

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

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

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

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