Jeśli chcesz tworzyć dynamiczne aplikacje internetowe, musisz pracować z bazą danych. Najczęściej w połączeniu z PHP używa się MySQL. W tym artykule dowiesz się, jak połączyć się z bazą danych, wstawiać i pobierać dane oraz jak zadbać o bezpieczeństwo swojego kodu.
MySQL to relacyjny system zarządzania bazą danych, który umożliwia efektywne przechowywanie i zarządzanie danymi. PHP posiada wbudowaną obsługę MySQL, dzięki czemu to połączenie jest bardzo popularne w tworzeniu aplikacji webowych.
Praca z MySQL umożliwia:
Przed rozpoczęciem pracy z MySQL w PHP musisz mieć zainstalowane:
Zalecanym sposobem instalacji jest użycie XAMPP, który zawiera Apache, MySQL i PHP w jednym pakiecie.
Do połączenia z bazą danych MySQL możesz użyć rozszerzenia MySQLi lub PDO. Oto przykład połączenia z użyciem MySQLi:
<?php $servername = "localhost"; $username = "root"; $password = ""; $database = "moja_baza"; // Utworzenie połączenia $conn = new mysqli($servername, $username, $password, $database); // Sprawdzenie połączenia if ($conn->connect_error) { die("Błąd połączenia: " . $conn->connect_error); } echo "Połączenie udane!"; ?>
new mysqli()
– tworzy połączenie z bazą danych.$conn->connect_error
– sprawdza, czy połączenie się powiodło.die()
– zatrzymuje skrypt w przypadku błędu.Aby dodać dane do bazy, możesz użyć polecenia SQL INSERT
:
<?php $sql = "INSERT INTO uzytkownicy (imie, email) VALUES ('Piotr', 'piotr@example.com')"; if ($conn->query($sql) === TRUE) { echo "Rekord dodany pomyślnie"; } else { echo "Błąd: " . $conn->error; } ?>
Aby pobrać dane, użyj polecenia SQL SELECT
:
<?php $sql = "SELECT id, imie, email 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"]. "<br>"; } } else { echo "Brak wyników"; } ?>
Bezpośrednie użycie danych wejściowych od użytkownika bez ich przetworzenia jest niebezpieczne. Bezpieczniejszym rozwiązaniem jest użycie przygotowanych zapytań SQL:
<?php $stmt = $conn->prepare("INSERT INTO uzytkownicy (imie, email) VALUES (?, ?)"); $stmt->bind_param("ss", $imie, $email); $imie = "Marcin"; $email = "marcin@example.com"; $stmt->execute(); $stmt->close(); ?>
Po połączeniu wypisz komunikat echo "Połączenie udane!"
. Jeśli pojawi się błąd, sprawdź ustawienia.
Użyj zapytania SELECT ... WHERE
, np.:
$sql = "SELECT * FROM uzytkownicy WHERE id=1"; $result = $conn->query($sql);
MySQLi jest szybszy dla MySQL, ale PDO obsługuje wiele systemów baz danych.
Jeśli interesują Cię szkolenia stacjonarne lub online z programowania w PHP, sprawdź naszą ofertę na www.like-it.sk. Nasze kursy prowadzone są przez doświadczonych ekspertów, którzy pomogą Ci opanować zarówno podstawy, jak i zaawansowane zagadnienia programowania.
Marián Knězek