PHP - BAZY DANYCH
PHP - BAZY DANYCH
1.1. Wprowadzenie do PHP
Opis: PHP to język skryptowy działający po stronie serwera, który pozwala na generowanie dynamicznych stron internetowych.
Znaczenie PHP w aplikacjach internetowych: PHP może wykonywać kod przed wysłaniem strony do przeglądarki użytkownika, umożliwiając połączenie z bazą danych, przetwarzanie formularzy i wiele innych działań.
1.2. Integracja PHP z HTML i CSS
Wykorzystanie PHP w kodzie HTML: PHP można używać wewnątrz kodu HTML, co pozwala na dynamiczne wyświetlanie treści. Przykład:
<html>
<body>
<h1>Witaj, <?php echo "użytkowniku"; ?>!</h1>
</body>
</html>
Znaczenie integracji z CSS: PHP pozwala na generowanie stylizowanych stron, a także dynamiczną zmianę stylów na podstawie danych z bazy (np. wyświetlenie specjalnych kolorów dla różnych grup użytkowników).
2.1. Połączenie z bazą danych – funkcja mysqli_connect()
Opis: mysqli_connect() to funkcja PHP, która pozwala na nawiązanie połączenia z bazą danych MySQL. Jest niezbędna, aby aplikacja mogła wymieniać dane z bazą.
Przykład:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "nazwa_bazy";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Błąd połączenia: " . mysqli_connect_error());
}
echo "Połączono z bazą danych!";
2.2. Zamknięcie połączenia – funkcja mysqli_close()
Opis: mysqli_close() kończy połączenie z bazą danych, co jest dobrą praktyką w celu zwolnienia zasobów serwera.
Przykład:
mysqli_close($conn);
3.1. Funkcja mysqli_query()
Opis: mysqli_query() służy do wykonywania zapytań SQL na połączonej bazie danych (np. SELECT, INSERT, UPDATE, DELETE).
Przykład:
$sql = "SELECT * FROM klienci";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id"]. " - Imię: " . $row["imie"]. " " . $row["nazwisko"]. "<br>";
}
} else {
echo "Brak wyników";
}
3.2. Pobieranie wyników – mysqli_fetch_assoc()
Opis: mysqli_fetch_assoc() przetwarza wyniki zapytania do formatu tablicy asocjacyjnej, co pozwala na łatwy dostęp do danych przez nazwę kolumny.
Przykład:
while ($row = mysqli_fetch_assoc($result)) {
echo $row['imie'] . " " . $row['nazwisko'] . "<br>";
}
4.1. Obsługa błędów – funkcja mysqli_error()
Opis: mysqli_error() pozwala na sprawdzenie błędów związanych z zapytaniami SQL, co jest pomocne w debugowaniu aplikacji.
Przykład:
if (!mysqli_query($conn, $sql)) {
echo "Błąd zapytania: " . mysqli_error($conn);
}
4.2. Zapytania przygotowane (Prepared Statements) i ochrona przed SQL Injection
Opis: Zapytania przygotowane to sposób na zabezpieczenie aplikacji przed wstrzykiwaniem SQL (SQL Injection), który chroni bazę przed atakami.
Przykład:
$stmt = $conn->prepare("SELECT * FROM klienci WHERE imie = ?");
$stmt->bind_param("s", $imie);
$imie = "Jan";
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row['imie'] . " " . $row['nazwisko'] . "<br>";
}
5.1. Przechwytywanie danych z formularza – $_POST i $_GET
Opis: Formularze HTML umożliwiają użytkownikom wysyłanie danych, które PHP odbiera za pomocą $_POST lub $_GET.
Przykład:
<form action="skrypt.php" method="post">
Imię: <input type="text" name="imie"><br>
<input type="submit">
</form>
$imie = $_POST['imie'];
echo "Wprowadzone imię: " . $imie;
5.2. Walidacja danych w PHP
Opis: Walidacja danych to proces sprawdzania poprawności wprowadzonych wartości przed zapisaniem ich do bazy. Jest kluczowa dla zabezpieczenia aplikacji.
Przykład:
if (!empty($_POST['imie'])) {
$imie = htmlspecialchars($_POST['imie']);
echo "Poprawne imię: " . $imie;
} else {
echo "Pole imię jest wymagane.";
}
6.1. Wyświetlanie danych z bazy danych na stronie
Opis: PHP pozwala na dynamiczne wyświetlanie zawartości bazy danych, np. listy klientów lub zamówień, bez potrzeby ręcznej aktualizacji strony.
Przykład:
$sql = "SELECT * FROM klienci";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
echo "<p>" . $row['imie'] . " " . $row['nazwisko'] . "</p>";
}
6.2. Tworzenie dynamicznych stron z wykorzystaniem pętli i warunków
Opis: Pętle (while, foreach) i warunki (if, else) pozwalają na wyświetlanie treści zależnych od danych, co daje elastyczność w wyświetlaniu złożonych informacji.
Przykład:
$sql = "SELECT * FROM klienci";
$result = mysqli_query($conn, $sql);
echo "<ul>";
while ($row = mysqli_fetch_assoc($result)) {
if ($row['wiek'] > 18) {
echo "<li>" . $row['imie'] . " " . $row['nazwisko'] . " (dorosły)</li>";
} else {
echo "<li>" . $row['imie'] . " " . $row['nazwisko'] . " (niepełnoletni)</li>";
}
}
echo "</ul>";
Opanowanie powyższych funkcji PHP umożliwia uczniowi:
Łączenie aplikacji z bazą danych i dynamiczne zarządzanie danymi.
Bezpieczne i efektywne przetwarzanie danych użytkowników, co jest niezbędne na egzaminie INF.03.
Budowanie interaktywnych stron internetowych, które pobierają i prezentują dane w zależności od potrzeb użytkownika.
Te zagadnienia stanowią bazę nie tylko do zarządzania bazami danych, ale także do tworzenia nowoczesnych, interaktywnych aplikacji internetowych.