PDO::commit()
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 som en allt-eller-inget-operation */ $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(); /* Databasanslutningen ä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(); /* Databasanslutningen är nu tillbaka i autocommit-läge */ ?>
Notering: Alla databaser tillåter inte att transaktioner hanterar DDL-kommandon: vissa genererar fel, medan andra (inklusive MySQL) automatiskt bekräftar transaktionen efter det första DDL-kommandot.
Se även
- PDO::beginTransaction() - Initierar en transaktion
- PDO::rollBack() - Rullar tillbaka en transaktion
- Transactions and auto-commit
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.