Aby połączyć bazę danych z kodem HTML, należy wykorzystać język programowania po stronie serwera, taki jak PHP, który umożliwia komunikację między stroną a bazą danych (najczęściej MySQL). Sam HTML służy jedynie do tworzenia struktury i formularzy – nie ma możliwości samodzielnego odczytu czy zapisu danych do bazy.
Jak przebiega połączenie HTML z bazą danych – krok po kroku
Stworzenie formularza HTML
Formularz HTML służy do zbierania danych od użytkownika, które następnie zostaną przesłane do skryptu PHP odpowiedzialnego za komunikację z bazą danych.
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Rejestracja użytkownika</title>
</head>
<body>
<form action="insert.php" method="post">
<label>Imię:</label> <input type="text" name="name"><br>
<label>Email:</label> <input type="email" name="email"><br>
<label>Telefon:</label> <input type="text" name="mobile"><br>
<input type="submit" value="Zarejestruj">
</form>
</body>
</html>
Połączenie PHP z bazą danych
Plik PHP odbiera dane z formularza i wykonuje operacje na bazie danych, np. dodaje nowy rekord do tabeli.
<?php
// Parametry połączenia
$host = "localhost";
$user = "nazwa_uzytkownika";
$password = "haslo";
$database = "nazwa_bazy";
// Nawiązanie połączenia z bazą
$conn = mysqli_connect($host, $user, $password, $database);
// Sprawdzenie połączenia
if (!$conn) {
die("Błąd połączenia z bazą: " . mysqli_connect_error());
}
// Pobranie danych z formularza
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
// Zapis do bazy
$sql = "INSERT INTO users (name, email, mobile) VALUES ('$name', '$email', '$mobile')";
if (mysqli_query($conn, $sql)) {
echo "Użytkownik został dodany!";
} else {
echo "Błąd: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
Uwaga – powyższy przykład z użyciem surowych danych ($_POST) jest edukacyjny; w praktyce należy stosować funkcje ochrony przed SQL Injection, np. mysqli_real_escape_string() lub rozwiązania PDO z przygotowanymi zapytaniami.
Schemat działania
- Użytkownik wypełnia formularz HTML i zatwierdza go,
- dane przesyłane są do pliku PHP wskazanego w atrybucie
actionformularza, - PHP pobiera dane, łączy się z bazą, wykonuje żądane operacje (np. dodaje dane do tabeli),
- wynik operacji jest zwracany użytkownikowi (np. komunikat o sukcesie).
Przykłady zastosowań
Rejestracja użytkowników
Strona z formularzem rejestracyjnym, gdzie nowi użytkownicy są zapisywani w bazie danych serwisu.
Panel logowania
Weryfikacja danych logowania – PHP sprawdza w bazie, czy istnieje użytkownik o podanych danych i generuje sesję.
Kontakt przez formularz
Dane przesłane z formularza kontaktowego są zapisywane w bazie, skąd administrator może je później pobrać.
Wyświetlanie dynamicznych danych
Strony internetowe pobierające z bazy np. listę produktów, posty na blogu czy wyniki wyszukiwania, a następnie wyświetlające je w HTML.
Rozwiązania alternatywne i dodatkowe
- AJAX (JavaScript + PHP/ASP.NET itp.) – pozwala przesyłać dane do bazy bez przeładowania strony;
- Frameworki (np. Laravel, Symfony) – automatyzują, zabezpieczają i przyspieszają cały proces;
- PDO zamiast mysqli – bezpieczniejsze i bardziej uniwersalne podejście do obsługi baz danych;
- Backendy jak Node.js – alternatywa dla PHP, również umożliwiająca łączenie z bazą danych.
Najczęstsze błędy i zagrożenia
- Brak walidacji danych – pozwala na przesyłanie błędnych lub szkodliwych informacji;
- Brak ochrony przed SQL Injection – może prowadzić do kradzieży lub uszkodzenia danych;
- Nieczytelne komunikaty o błędach – brak informacji, co poszło nie tak, utrudnia diagnozowanie problemów;
- Ujawnianie danych konfiguracyjnych – np. loginów i haseł do bazy w przypadkowo udostępnionych plikach.
Podsumowanie
HTML nie łączy się bezpośrednio z bazą danych. Połączenie realizuje się przez język programowania po stronie serwera (np. PHP), który przetwarza dane z formularza i komunikuje się z bazą. Najczęściej stosowane rozwiązania bazują na PHP oraz bazie danych MySQL/MariaDB. W nowoczesnych aplikacjach coraz popularniejsze staje się wykorzystywanie frameworków oraz technologii AJAX dla osiągnięcia lepszej interaktywności i bezpieczeństwa.