DALL·E 2024-11-26 02.29.45 - A cartoon-style illustration representing learning MySQL databases in PHP. The image features a friendly depiction of a computer screen with PHP code

Innehållsförteckning

  1. Introduktion till databaser och MySQL
  2. Installera MySQL och skapa en databas
  3. Anslut till en MySQL-databas med PHP
  4. Skapa, läsa, uppdatera och ta bort data (CRUD)
  5. SQL-säkerhet och förberedda uttryck
  6. Praktiska exempel med MySQL
  7. Övning: Bygg en enkel användarhantering
  8. Sammanfattning

Hej och välkommen till lektion nio! I denna lektion ska vi titta på hur man arbetar med databaser i PHP, och specifikt med MySQL. Databaser är otroligt kraftfulla verktyg för att lagra stora mängder data, och att förstå hur man arbetar med databaser är avgörande för att bygga dynamiska webbsidor. Låt oss börja!

Introduktion till databaser och MySQL

En databas är ett organiserat sätt att lagra och hantera data. När vi arbetar med webbutveckling vill vi ofta lagra användardata, som registreringar, inlägg eller produktinformation. MySQL är ett av de mest populära databasystemen för att hantera denna typ av data. Det är ett relationsdatabashanteringssystem (RDBMS) som används tillsammans med PHP för att skapa dynamiska webbapplikationer.

Installera MySQL och skapa en databas

För att börja arbeta med MySQL behöver du installera MySQL-servern. Det enklaste sättet är att använda ett paket som XAMPP, som innehåller både Apache-webbservern, PHP och MySQL. När du har installerat MySQL kan du logga in på phpMyAdmin, som är ett webbaserat gränssnitt för att hantera dina databaser.

För att skapa en ny databas, öppna phpMyAdmin och välj ”Databaser”. Skriv in namnet på din databas och klicka på ”Skapa”. Nu har du en tom databas som vi kan fylla med tabeller och data.

Anslut till en MySQL-databas med PHP

För att ansluta till en MySQL-databas med PHP kan vi använda funktionen mysqli_connect(). Här är ett enkelt exempel:

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "min_databas";

    // Skapa anslutningen
    $conn = mysqli_connect($servername, $username, $password, $dbname);

    // Kontrollera anslutningen
    if (!$conn) {
        die("Anslutningen misslyckades: " . mysqli_connect_error());
    }
    echo "Anslutningen lyckades!";
?>

I detta exempel ansluter vi till en databas med namnet min_databas. Om anslutningen lyckas kommer ett meddelande att visas. Om inte, kommer vi att få ett felmeddelande.

Skapa, läsa, uppdatera och ta bort data (CRUD)

När vi arbetar med databaser handlar det ofta om att skapa, läsa, uppdatera och ta bort data. Detta kallas ofta för CRUD-operationer:

  • Create (skapa): Lägga till ny data i databasen.
  • Read (läsa): Hämta data från databasen.
  • Update (uppdatera): Ändra befintlig data.
  • Delete (ta bort): Ta bort data från databasen.

Här är ett exempel på hur du kan skapa en ny tabell och lägga till en ny rad i den:

<?php
    $sql = "CREATE TABLE Anvandare (
        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        namn VARCHAR(30) NOT NULL,
        email VARCHAR(50),
        reg_date TIMESTAMP
    )";

    if (mysqli_query($conn, $sql)) {
        echo "Tabellen Anvandare skapades.";
    } else {
        echo "Fel: " . mysqli_error($conn);
    }

    // Lägg till en användare
    $sql = "INSERT INTO Anvandare (namn, email) VALUES ('Alice', 'alice@example.com')";
    if (mysqli_query($conn, $sql)) {
        echo "Ny användare lades till.";
    } else {
        echo "Fel: " . mysqli_error($conn);
    }
?>

I detta exempel skapar vi först en tabell som heter Anvandare och sedan lägger vi till en ny användare i tabellen.

SQL-säkerhet och förberedda uttryck

När du arbetar med databaser är säkerhet en viktig fråga. En vanlig säkerhetsrisk är SQL-injektion, där en angripare skickar in skadlig SQL-kod genom användarinmatning. För att skydda mot detta bör du använda förberedda uttryck.

Här är ett exempel på hur du använder förberedda uttryck i PHP:

<?php
    $stmt = $conn->prepare("INSERT INTO Anvandare (namn, email) VALUES (?, ?)");
    $stmt->bind_param("ss", $namn, $email);

    // Ställ in parametrarna och kör
    $namn = "Bob";
    $email = "bob@example.com";
    $stmt->execute();

    echo "Ny användare lades till.";
    $stmt->close();
?>

I detta exempel använder vi prepare() och bind_param() för att skydda mot SQL-injektion. Detta är ett säkrare sätt att arbeta med användarinmatning.

Praktiska exempel med MySQL

Låt oss skapa ett praktiskt exempel där vi skapar en enkel användarhantering med MySQL. Vi vill kunna registrera nya användare och visa en lista över alla användare:

<?php
    // Lägg till en ny användare
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $namn = $_POST["namn"];
        $email = $_POST["email"];

        $stmt = $conn->prepare("INSERT INTO Anvandare (namn, email) VALUES (?, ?)");
        $stmt->bind_param("ss", $namn, $email);
        $stmt->execute();
        echo "Ny användare lades till.";
        $stmt->close();
    }

    // Visa alla användare
    $resultat = mysqli_query($conn, "SELECT * FROM Anvandare");
    while ($rad = mysqli_fetch_assoc($resultat)) {
        echo "Namn: " . $rad["namn"] . " - E-post: " . $rad["email"] . "<br>";
    }
?>

Övning: Bygg en enkel användarhantering

Nu är det din tur att prova! Skapa en sida där användaren kan registrera sitt namn och sin e-postadress, och sedan visa en lista över alla registrerade användare.

  1. Skapa en ny fil: Skapa en ny fil och döp den till anvandare.php.
  2. Skapa ett HTML-formulär som låter användaren fylla i sitt namn och sin e-postadress.
  3. Spara användarens uppgifter i en MySQL-databas och visa alla registrerade användare på sidan.

Här är en start:

<form action="anvandare.php" method="post">
    <label for="namn">Namn:</label>
    <input type="text" id="namn" name="namn">
    <br>
    <label for="email">E-post:</label>
    <input type="email" id="email" name="email">
    <br>
    <input type="submit" value="Registrera">
</form>

Och här är PHP-koden för att hantera formuläret:

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "min_databas";

    // Skapa anslutningen
    $conn = mysqli_connect($servername, $username, $password, $dbname);

    if (!$conn) {
        die("Anslutningen misslyckades: " . mysqli_connect_error());
    }

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $namn = $_POST["namn"];
        $email = $_POST["email"];

        $stmt = $conn->prepare("INSERT INTO Anvandare (namn, email) VALUES (?, ?)");
        $stmt->bind_param("ss", $namn, $email);
        $stmt->execute();
        echo "Ny användare lades till.";
        $stmt->close();
    }

    // Visa alla användare
    $resultat = mysqli_query($conn, "SELECT * FROM Anvandare");
    while ($rad = mysqli_fetch_assoc($resultat)) {
        echo "Namn: " . htmlspecialchars($rad["namn"]) . " - E-post: " . htmlspecialchars($rad["email"]) . "<br>";
    }
?>

Sammanfattning

I denna lektion har vi lärt oss om databaser och MySQL i PHP – hur vi kan ansluta till en databas, skapa, läsa, uppdatera och ta bort data, samt hur vi skyddar våra applikationer från SQL-injektion med hjälp av förberedda uttryck. Att kunna arbeta med databaser är en av de mest värdefulla färdigheterna för en webbutvecklare, och nu har du grunderna för att göra just detta.

I nästa lektion kommer vi att titta på objektorienterad programmering (OOP) i PHP – ett sätt att organisera och strukturera din kod för bättre skalbarhet och återanvändbarhet.

Vi ses i nästa lektion! 🚀


Ännu fler artiklar

DALL·E 2024-11-26 02.17.47 - A cartoon-style illustration representing learning arrays in PHP. The image features a friendly depiction of a computer screen with PHP code showing d

PHP-SKOLA Lektion 5: Arrays i PHP

Innehållsförteckning Vad är en array? Skapa och använda arrays Associativa arrays Flerdimensionella arrays Vanliga array-funktioner Praktiska exempel med arrays Övning: Hantera en inköpslista med en array Sammanfattning Hej och välkommen…

Läs mer
DALL·E 2024-11-25 01.53.45 - A realistic illustration representing the development of AI in Sweden. The image features key elements such as healthcare with AI diagnostics, industr

Utvecklingen av Sveriges AI-behov

Den senaste utvecklingen inom AI och Sverige Under de senaste åren har artificiell intelligens (AI) blivit en central del av Sveriges teknologiska utveckling och samhälleliga omvandling. För att ligga i…

Läs mer
DALL·E 2024-11-26 02.15.24 - A cartoon-style illustration representing learning functions in PHP. The image features a friendly depiction of a computer screen showing PHP code wit

PHP-SKOLA Lektion 4: Funktioner i PHP

Innehållsförteckning Vad är en funktion? Skapa egna funktioner i PHP Parametrar och returvärden Användbara inbyggda funktioner Praktiska exempel med funktioner Övning: Bygg en egen räknare med funktioner Sammanfattning Hej och…

Läs mer

Guide till Opencart

Introduktion till OpenCart: En omfattande guide OpenCart är en av de mest populära och användarvänliga e-handelsplattformarna tillgängliga idag. Med sitt öppna källkodssystem, stora antal tillägg och en växande community erbjuder…

Läs mer