PDO::beginTransaction()
PDO::beginTransaction
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::beginTransaction — Initierar en transaktion
Beskrivning
public PDO::beginTransaction(): bool
Stänger av autocommit-läge. När autocommit-läget är avstängt sparas inte ändringar som görs via PDO-objektet i databasen förrän transaktionen avslutas med PDO::commit(). Ett anrop till PDO::rollBack() rullar tillbaka alla ändringar i databasen och återställer kopplingen till autocommit-läge.
Vissa databaser, inklusive MySQL, utfärdar automatiskt ett implicit COMMIT när ett databasdefinitionskommando (DDL), såsom `DROP TABLE` eller `CREATE TABLE`, körs inom en transaktion. Det implicita COMMIT förhindrar dig från att rulla tillbaka andra ändringar inom transaktionsgränsen.
Parametrar
Denna funktion har inga parametrar.
Returnerar
Returnerar `true` vid framgång eller `false` vid misslyckande.
Fel/Undantag
- Kastar ett `PDOException` om det redan finns en aktiv transaktion eller om drivrutinen inte stödjer transaktioner. - Ett undantag kastas även om attributet `PDO::ATTR_ERRMODE` inte är satt till `PDO::ERRMODE_EXCEPTION`.
Exempel
Exempel #1 Rulla tillbaka en transaktion
<?php /* Starta en transaktion och stäng av autocommit */ $dbh->beginTransaction(); /* Ändra databasschema och data */ $sth = $dbh->exec("DROP TABLE fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'"); /* Upptäck misstaget och rulla tillbaka ändringarna */ $dbh->rollBack(); /* Databaskopplingen är nu tillbaka i autocommit-läge */ ?>
Se även
- PDO::commit() - Bekräftar en transaktion
- PDO::rollBack() - Rullar tillbaka en transaktion
- Transactions and auto-commit
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/pdo.begintransaction.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.