Transaktioner med PDO
Gruppera flera frågor i atomära transaktioner med beginTransaction och commit.
Transaktioner med PDO är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för PHP Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i PHP Academy innehåller totalt 4 lektioner.
Vad är en transaktion?
En transaktion grupperar flera SQL-satser till en enda atomär enhet: alla lyckas (commit) eller så återställs alla.
ACID-egenskaper
Transaktioner garanterar ACID: atomicitet, konsistens, isolering och varaktighet.
beginTransaction()
Starta en transaktion med $pdo->beginTransaction(). Automatisk bekräftelse är inaktiverad tills Ni anropar commit() eller rollBack().
commit()
Sparar permanent alla ändringar som har gjorts sedan beginTransaction().
rollBack()
Tar bort alla ändringar som har gjorts sedan beginTransaction() och återställer databasen till tillståndet före transaktionen.
Transaktionsmönster
Omslut alltid transaktioner med try/catch:
<?php
try {
$pdo->beginTransaction();
$pdo->prepare("UPDATE accounts SET balance = balance - ? WHERE id = ?")
->execute([100, $senderId]);
$pdo->prepare("UPDATE accounts SET balance = balance + ? WHERE id = ?")
->execute([100, $receiverId]);
$pdo->commit();
} catch (PDOException $e) {
$pdo->rollBack();
throw $e;
}Savepoints
PDO stöder inte nästlade transaktioner inbyggt. Använd SQL-kommandon med SAVEPOINT för partiella återställningar inom en transaktion.
inTransaction()
Kontrollera om en transaktion är aktiv med $pdo->inTransaction(). Returnerar true eller false.
Läge för automatisk bekräftelse
Som standard är PDO i läget för automatisk bekräftelse: varje sats bekräftas omedelbart. beginTransaction() inaktiverar automatisk bekräftelse.
Isoleringsnivåer
MySQL stöder: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ (standard) och SERIALIZABLE. Ställ in nivån med $pdo->exec("SET TRANSACTION ISOLATION LEVEL READ COMMITTED").
När ska transaktioner användas?
Använd transaktioner för banköverföringar, orderläggning med lageravdrag och alla skrivningar till flera tabeller där en delvis genomförd operation inte kan accepteras.
DDL och transaktioner
I MySQL orsakar DDL-satser (CREATE TABLE, ALTER TABLE) en implicit bekräftelse. Ni kan inte återställa DDL i en transaktion.
Snabbkontroll
Vad gör rollBack()?
Lär dig PHP med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 49
- Lektioner
- 195
Vanliga frågor
Är lektionen ”Transaktioner med PDO” gratis?
Ja – hela texten till ”Transaktioner med PDO” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i PHP Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i PHP Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Transaktioner med PDO”?
Gruppera flera frågor i atomära transaktioner med beginTransaction och commit. Ni övar på PHP Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig PHP Academy?
Du behöver inga förkunskaper. Utbildningen i PHP Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Transaktioner med PDO”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här PHP Academy-lektionen?
Ja. Varje PHP Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Ansluta till MySQL med PDO
- Förberedda satser och bindning
- Hämta resultat med PDO
- Transaktioner med PDO