Łączenie strony z bazą danych

  1. Na początku zadania tworzymy bazę danych oraz tabelę w phpMyAdmin:

    W phpMyAdmin utwórz nową bazę danych o nazwie my_website.

    W tej bazie danych utwórz tabelę users ze strukturą:
    – id – INT, AUTO_INCREMENT, PRIMARY KEY
    – name – VARCHAR(100) (dla imienia i nazwiska)

  2.  Następnie tworzymy skrypt do połączenia z bazą danych (db_connection.php):

<?php
// Dane połączenia z bazą danych
// Określamy lokalizację serwera bazy danych, nazwę użytkownika, hasło i nazwę bazy danych:
$servername = „localhost”; // Adres serwera MySQL, dla XAMPP jest to „localhost”
$username = „root”; // Domyślna nazwa użytkownika w XAMPP to „root”
$password = „”; // Domyślne hasło w XAMPP jest puste
$database = „contact_db”; // Nazwa bazy danych, którą chcemy połączyć (np. „contact_db”)

// Próba nawiązania połączenia z bazą danych
// Tworzymy obiekt mysqli, który odpowiada za komunikację z bazą danych
$conn = new mysqli($servername, $username, $password, $database);

// Sprawdzanie, czy połączenie zostało nawiązane poprawnie
// Funkcja connect_error zwraca szczegóły problemu, jeśli połączenie nie powiodło się
if ($conn->connect_error) {
// Jeśli połączenie się nie udało, przerywamy skrypt i wyświetlamy komunikat o błędzie
die(„Connection failed: ” . $conn->connect_error);
}

// Jeśli połączenie zostało nawiązane poprawnie, wyświetlamy komunikat (opcjonalne)
echo „Connected successfully”;

// Opcjonalnie można ustawić kodowanie znaków, aby obsługiwać dane w formacie UTF-8
$conn->set_charset(„utf8”);

// Skrypt kończy się tutaj. Połączenie pozostaje otwarte do czasu zamknięcia ręcznie lub zakończenia skryptu.
?>

Cały kod powinien wyglądać tak:

Struktura strony głównej (index.php)
Struktura kodu powinna zawierać stronę główną, z podziałem na header, body oraz footer. Formularz w części body przyjmuje name (Imię i nazwisko), a dane są zapisywane do bazy danych po wysłaniu. Przykład wyglądu strony:

Przykład kodu strony:

Skrypt do obsługi formularza (submit_form.php)

Ten skrypt pobiera dane z formularza (name) i zapisuje je do bazy danych my_website wraz z komentarzami wyjaśniającymi każdą część:

<?php
// Włączenie pliku połączenia z bazą danych
// Importujemy wcześniej utworzony plik db_connection.php, aby uzyskać dostęp do połączenia z bazą danych
require_once 'db_connection.php’;

// Sprawdzamy, czy formularz został wysłany za pomocą metody POST
if ($_SERVER[„REQUEST_METHOD”] == „POST”) {
// Pobranie danych z formularza za pomocą funkcji $_POST
// Zmienna $_POST zawiera dane przesłane przez użytkownika
$name = $_POST[’name’]; // Pobieramy dane z pola „name” w formularzu

// Przygotowanie zapytania SQL do wstawienia danych do tabeli w bazie danych
// Zapytanie INSERT INTO wstawia nowy wiersz do tabeli „users”
$sql = „INSERT INTO users (name) VALUES (?)”;

// Przygotowanie zapytania za pomocą mechanizmu prepared statements (zapytania przygotowane)
// Zapytania przygotowane zwiększają bezpieczeństwo i chronią przed atakami typu SQL Injection
$stmt = $conn->prepare($sql);

// Powiązanie parametrów do zapytania przygotowanego
// „s” oznacza, że przesyłamy ciąg znaków (string)
$stmt->bind_param(„s”, $name);

// Wykonanie zapytania
if ($stmt->execute()) {
// Jeśli zapytanie zostało wykonane pomyślnie, wyświetlamy komunikat o sukcesie
echo „Dane zostały zapisane pomyślnie!”;
} else {
// Jeśli zapytanie się nie powiodło, wyświetlamy komunikat o błędzie
echo „Błąd: ” . $stmt->error;
}

// Zamknięcie zapytania przygotowanego
$stmt->close();
}

// Zamknięcie połączenia z bazą danych
$conn->close();
?>

Cały kod powinien wyglądać tak:

Podsumowanie
Baza danych:
Zawiera tabelę users z kolumną name, do której będą zapisywane dane.

Pliki PHP:
db_connection.php: Skrypt do połączenia z bazą danych.
index.php: Strona główna z formularzem.
submit_form.php: Skrypt zapisujący dane do bazy danych.

Aby uruchomić ten projekt, skopiuj wszystkie pliki do folderu htdocs XAMPP (np. C:\xampp\htdocs\projekt).

Następnie uruchom serwer Apache oraz MySQL w XAMPP i przejdź do http://localhost/projekt/index.php w przeglądarce.

Kontakt: mgzsp22@gmail.com

© 2024. Wszystkie prawa zastrzeżone.

error: Content is protected !!