PDO::commit

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

PDO::commit

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::commit — Bekräftar en transaktion

Beskrivning

public PDO::commit(): bool

Bekräftar en transaktion och återställer databaskopplingen till autocommit-läge tills nästa anrop till PDO::beginTransaction() startar en ny transaktion.

Parametrar

Denna funktion har inga parametrar.

Returnerar

Returnerar `true` vid framgång eller `false` vid misslyckande.

Fel/Undantag

- Kastar ett `PDOException` om det inte finns någon aktiv transaktion. - Ett undantag kastas även om attributet `PDO::ATTR_ERRMODE` inte är satt till `PDO::ERRMODE_EXCEPTION`.

Exempel

Exempel #1 Bekräfta en grundläggande transaktion

<?php
/* Starta en transaktion och stäng av autocommit */
$dbh->beginTransaction();

/* Infoga flera poster på en allt-eller-inget-basis */
$sql = 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)';

$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
    $sth->execute(array(
        $fruit->name,
        $fruit->colour,
        $fruit->calories,
    ));
}

/* Bekräfta ändringarna */
$dbh->commit();

/* Databaskopplingen är nu tillbaka i autocommit-läge */
?>

Exempel #2 Bekräfta en DDL-transaktion

<?php
/* Starta en transaktion och stäng av autocommit */
$dbh->beginTransaction();

/* Ändra databasschema */
$sth = $dbh->exec("DROP TABLE fruit");

/* Bekräfta ändringarna */
$dbh->commit();

/* Databaskopplingen är nu tillbaka i autocommit-läge */
?>

Noteringar

Notera att inte alla databaser tillåter transaktioner att inkludera DDL-kommandon. Vissa genererar fel, medan andra (inklusive MySQL) automatiskt bekräftar transaktionen efter det första DDL-kommandot.

Se även

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/pdo.commit.php
PHP Funktioner Funktionsreferens Databas-tillägg


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Huddinge Datorhjälp som har sponsrat Linux.se med webbhotell.