PHP Academy · Lektion

Arbeta med PDO

Använd PHP Data Objects (PDO) för att interagera med databaser

Lektion 6 av 610 steg

Arbeta med PDO är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 6 av 6. 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 6 lektioner.

Översikt över PDO

Arbeta med PDO

Välkommen till nästa lektion! I den här lektionen får du lära dig att använda PDO (PHP Data Objects) för databasinteraktioner. PDO är ett flexibelt och säkert sätt att ansluta till och arbeta med databaser. Nu sätter vi igång!

Arbeta med PDO — illustration 1

Vad är PDO?

PDO (PHP Data Objects) är ett databasåtkomstlager som tillhandahåller ett enhetligt gränssnitt för arbete med olika databassystem. Det stöder en mängd olika databaser, till exempel MySQL, PostgreSQL och SQLite.

Viktiga funktioner:

  • Databasoberoende (fungerar med flera databastyper).
  • Inbyggt stöd för prepared statements.
  • Avancerade alternativ för felhantering.

Tips: PDO är ett utmärkt val för att bygga säkra och skalbara webbapplikationer.

Ansluta till en databas med PDO

För att ansluta till en databas med PDO behöver du:

  • Datakällans namn (DSN), inklusive databastyp, värd och namn.
  • Ett giltigt användarnamn och lösenord.

Exempel:

Tips: Använd miljövariabler eller konfigurationsfiler för känsliga inloggningsuppgifter.

<?php
  $dsn = "mysql:host=localhost;dbname=testdb";
  $username = "root";
  $password = "";

  try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully!";
  } catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
  }
?>

Köra frågor

PDO tillhandahåller två huvudsakliga metoder för att köra frågor:

  • exec(): För satser som inte returnerar resultat (t.ex. INSERT, UPDATE).
  • query(): För satser som returnerar resultat (t.ex. SELECT).

Exempel:

<?php
  // Insert a record
  $pdo->exec("INSERT INTO users (name, email) VALUES ('Alice', 'alice@mail.com')");

  // Retrieve records
  $stmt = $pdo->query("SELECT * FROM users");
  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
  }
?>

Använda prepared statements

Prepared statements är avgörande för säkra och effektiva databasinteraktioner. Exempel:

Tips: Använd platshållare (:email) för att förhindra SQL-injektion.

<?php
  $sql = "SELECT * FROM users WHERE email = :email";
  $stmt = $pdo->prepare($sql);
  $stmt->execute(["email" => "alice@mail.com"]);
  $user = $stmt->fetch(PDO::FETCH_ASSOC);

  echo "Name: " . $user["name"];
?>

Felhantering i PDO

PDO stöder tre lägen för felhantering:

  • ERRMODE_SILENT: Fel måste kontrolleras manuellt.
  • ERRMODE_WARNING: Fel utlöser PHP-varningar.
  • ERRMODE_EXCEPTION: Fel kastar undantag (rekommenderas).

Exempel:

<?php
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  try {
    $pdo->exec("INVALID SQL STATEMENT");
  } catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
  }
?>

Hämta data

PDO tillhandahåller flera metoder för att hämta data:

  • fetch(): Hämtar en enskild rad.
  • fetchAll(): Hämtar alla rader.
  • fetchColumn(): Hämtar värdet i en enskild kolumn.

Exempel:

<?php
  $stmt = $pdo->query("SELECT name FROM users");
  while ($name = $stmt->fetchColumn()) {
    echo "User: " . $name . "<br>";
  }
?>

Transaktionshantering

Använd transaktioner för att köra flera frågor som en enda enhet. Exempel:

Tips: Använd transaktioner för att säkerställa dataintegriteten.

<?php
  try {
    $pdo->beginTransaction();

    $pdo->exec("INSERT INTO users (name, email) VALUES ('Bob', 'bob@mail.com')");
    $pdo->exec("INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@mail.com')");

    $pdo->commit();
    echo "Transaction successful!";
  } catch (PDOException $e) {
    $pdo->rollBack();
    echo "Transaction failed: " . $e->getMessage();
  }
?>

Bra jobbat!

Grattis! Du har lärt dig att använda PDO för säkra och effektiva databasinteraktioner, inklusive anslutning, körning av frågor och hantering av transaktioner. I nästa lektion utforskar vi avancerade tekniker för att ställa SQL-frågor med PDO. Fortsätt koda!

Arbeta med PDO — illustration 10
Gratis att börja

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 ”Arbeta med PDO” gratis?

Ja – hela texten till ”Arbeta 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 6 lektioner.

Vad lär jag mig i ”Arbeta med PDO”?

Använd PHP Data Objects (PDO) för att interagera med databaser 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 6 av 6.

Hur lång tid tar lektionen ”Arbeta 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

  1. Introduktion till databaser
  2. Ansluta till en MySQL-databas
  3. Hantera tabeller
  4. Utföra CRUD-operationer
  5. Förberedda satser
  6. Arbeta med PDO
← Tillbaka till PHP Academy