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 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
- 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.