Jeśli kiedykolwiek tworzyłeś stronę internetową z dynamiczną zawartością, wiesz, że baza danych to jej serce. To właśnie tam przechowywane są informacje o użytkownikach, produktach, wpisach na blogu czy wiadomościach kontaktowych. A jednym z najpopularniejszych systemów baz danych na świecie jest MySQL. W połączeniu z PHP staje się potężnym duetem, który pozwala tworzyć w pełni dynamiczne aplikacje webowe.
W tym artykule pokażę Ci krok po kroku, jak utworzyć bazę danych MySQL za pomocą PHP – od podstawowej konfiguracji, aż po napisanie kompletnego skryptu. Nie musisz być ekspertem – wystarczy trochę cierpliwości i chęć nauki. Zaczynajmy!
Czym jest MySQL i dlaczego warto go używać?
Zanim przejdziemy do kodowania, wyjaśnijmy krótko, czym właściwie jest MySQL.
MySQL to relacyjny system zarządzania bazą danych (RDBMS), który przechowuje dane w tabelach, kolumnach i wierszach. To jedna z najpopularniejszych technologii w świecie web developmentu, głównie dlatego, że:
- Jest darmowy i open-source,
- Doskonale współpracuje z językiem PHP,
- Działa stabilnie nawet przy dużej ilości danych,
- Obsługuje język SQL (Structured Query Language), czyli standardowy sposób komunikacji z bazami danych.
Większość popularnych platform, takich jak WordPress, Drupal czy Joomla, używa MySQL jako swojego silnika baz danych.
Dlaczego PHP + MySQL to dobre połączenie?
PHP i MySQL to klasyczne połączenie, które od lat stanowi podstawę wielu aplikacji internetowych. PHP pozwala na dynamiczne generowanie treści (np. pobieranie danych z bazy i wyświetlanie ich na stronie), a MySQL – na skuteczne przechowywanie tych danych.
W skrócie:
PHP to „mózg” aplikacji.
MySQL to „pamięć” aplikacji.
Co będzie Ci potrzebne?
Zanim zaczniemy pisać kod, upewnij się, że masz przygotowane odpowiednie środowisko. Będziesz potrzebować:
- Serwera lokalnego – np. XAMPP lub Laragon.
Dzięki nim zainstalujesz jednocześnie Apache, PHP i MySQL. - Edytora kodu – np. VS Code, Sublime Text, PHPStorm albo Notepad++.
- Podstawowej znajomości PHP – nie musisz być ekspertem, wystarczy wiedzieć, jak tworzy się plik
.php.
Po zainstalowaniu XAMPP-a wystarczy uruchomić Apache i MySQL, a następnie otworzyć przeglądarkę i wpisać adres:
http://localhost/
Jeśli wszystko działa, możemy przejść dalej.
Tworzenie połączenia z MySQL za pomocą PHP
Zanim utworzymy bazę danych, musimy nawiązać połączenie z serwerem MySQL. Można to zrobić na dwa sposoby:
- za pomocą funkcji
mysqli, - lub przy użyciu klasy
PDO.
W tym artykule skupimy się na mysqli, ponieważ jest prostsze dla początkujących.
Oto prosty przykład:
<?php
$servername = "localhost";
$username = "root";
$password = "";
// Tworzymy połączenie
$conn = new mysqli($servername, $username, $password);
// Sprawdzamy połączenie
if ($conn->connect_error) {
die("Błąd połączenia: " . $conn->connect_error);
}
echo "Połączenie z MySQL działa!";
?>
Wyjaśnienie kodu:
localhost– to adres serwera (w przypadku lokalnego środowiska zawsze taki sam),root– domyślna nazwa użytkownika MySQL,password– w środowisku lokalnym zwykle puste,new mysqli()– tworzy nowe połączenie z serwerem MySQL,connect_error– sprawdza, czy połączenie się udało.
Jeśli uruchomisz ten plik w przeglądarce (np. http://localhost/test.php), powinieneś zobaczyć komunikat:
„Połączenie z MySQL działa!”
Gratulacje – pierwszy krok za Tobą!
Tworzenie bazy danych MySQL z poziomu PHP
Teraz, gdy połączenie działa, możemy utworzyć bazę danych bezpośrednio z poziomu skryptu PHP. Wystarczy wykonać odpowiednie zapytanie SQL.
Przykład:
<?php
$servername = "localhost";
$username = "root";
$password = "";
// Połączenie z serwerem MySQL
$conn = new mysqli($servername, $username, $password);
// Sprawdzenie połączenia
if ($conn->connect_error) {
die("Błąd połączenia: " . $conn->connect_error);
}
// Tworzymy bazę danych
$sql = "CREATE DATABASE moja_baza";
if ($conn->query($sql) === TRUE) {
echo "Baza danych została pomyślnie utworzona!";
} else {
echo "Błąd podczas tworzenia bazy danych: " . $conn->error;
}
$conn->close();
?>
Wystarczy uruchomić ten skrypt w przeglądarce, a w panelu phpMyAdmin (lub w MySQL Workbench) pojawi się nowa baza danych o nazwie moja_baza.
Tworzenie tabeli w nowej bazie danych
Baza danych sama w sobie nie wystarczy – potrzebujemy tabel, które będą przechowywać nasze dane. Załóżmy, że chcemy utworzyć tabelę uzytkownicy z kolumnami: id, imie, email, data_rejestracji.
Oto przykładowy kod:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "moja_baza";
// Połączenie z konkretną bazą danych
$conn = new mysqli($servername, $username, $password, $dbname);
// Sprawdzenie połączenia
if ($conn->connect_error) {
die("Błąd połączenia: " . $conn->connect_error);
}
// Tworzymy tabelę
$sql = "CREATE TABLE uzytkownicy (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(30) NOT NULL,
email VARCHAR(50),
data_rejestracji TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Tabela 'uzytkownicy' została utworzona!";
} else {
echo "Błąd podczas tworzenia tabeli: " . $conn->error;
}
$conn->close();
?>
Ten skrypt tworzy tabelę z automatycznym kluczem głównym (id) oraz trzema polami: imię, e-mail i data rejestracji.
Wstawianie danych do tabeli
Skoro mamy już tabelę, pora dodać pierwsze dane. W PHP można to zrobić przy użyciu zapytania INSERT INTO.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "moja_baza";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Błąd połączenia: " . $conn->connect_error);
}
$sql = "INSERT INTO uzytkownicy (imie, email)
VALUES ('Jan Kowalski', 'jan@example.com')";
if ($conn->query($sql) === TRUE) {
echo "Nowy rekord został dodany!";
} else {
echo "Błąd: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
Po uruchomieniu tego pliku dane zostaną dodane do tabeli uzytkownicy. Możesz to sprawdzić w phpMyAdmin, wybierając bazę moja_baza → uzytkownicy.
Odczytywanie danych z MySQL
Aby wyświetlić dane zapisane w bazie, użyjemy zapytania SELECT:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "moja_baza";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Błąd połączenia: " . $conn->connect_error);
}
$sql = "SELECT id, imie, email, data_rejestracji FROM uzytkownicy";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " | Imię: " . $row["imie"]. " | Email: " . $row["email"]. " | Data: " . $row["data_rejestracji"]. "<br>";
}
} else {
echo "Brak wyników.";
}
$conn->close();
?>
Ten prosty skrypt pobiera wszystkie dane z tabeli uzytkownicy i wyświetla je w przeglądarce.
Typowe błędy i jak ich uniknąć
Podczas pracy z PHP i MySQL możesz natrafić na kilka typowych problemów:
- Błąd połączenia:
Sprawdź, czy serwer MySQL działa oraz czy dane logowania (username,password) są poprawne. - Brak bazy danych:
Upewnij się, że baza została utworzona przed próbą połączenia z nią. - Błędy w zapytaniu SQL:
Jeśli masz błąd składni, użyj$conn->errorw PHP, by zobaczyć szczegóły. - Zła obsługa polskich znaków:
Aby wyświetlać poprawnie znaki diakrytyczne, dodaj:$conn->set_charset("utf8");
Dodatkowa wskazówka: Tworzenie bazy danych i tabel automatycznie
Możesz połączyć wszystko w jeden plik, który utworzy bazę danych, tabelę i wstawi przykładowe dane automatycznie:
<?php
$servername = "localhost";
$username = "root";
$password = "";
// Połączenie z MySQL
$conn = new mysqli($servername, $username, $password);
if ($conn->connect_error) {
die("Błąd połączenia: " . $conn->connect_error);
}
// Tworzenie bazy
$conn->query("CREATE DATABASE IF NOT EXISTS moja_baza");
$conn->select_db("moja_baza");
// Tworzenie tabeli
$conn->query("CREATE TABLE IF NOT EXISTS uzytkownicy (
id INT AUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(50),
email VARCHAR(100),
data_rejestracji TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)");
// Dodanie przykładowego wpisu
$conn->query("INSERT INTO uzytkownicy (imie, email) VALUES ('Anna Nowak', 'anna@example.com')");
echo "Baza, tabela i dane zostały utworzone!";
$conn->close();
?>
Ten kod załatwia wszystko jednym kliknięciem – idealny do testów lub automatycznego wdrożenia.
Tworzenie bazy danych MySQL za pomocą PHP może wydawać się trudne, ale jak widzisz – wystarczy kilka linijek kodu, by wszystko działało jak należy. W tym artykule nauczyłeś się:
- jak połączyć PHP z MySQL,
- jak utworzyć bazę danych i tabelę,
- jak dodawać i odczytywać dane,
- jak obsługiwać błędy i kodować polskie znaki.
Dzięki tej wiedzy możesz teraz budować prawdziwe, dynamiczne aplikacje webowe – od prostych systemów logowania po zaawansowane panele administracyjne.