Zapytania SELECT, INSERT, UPDATE w praktyce

Zapytania SQL SELECT, INSERT, UPDATE są podstawą interakcji z bazą danych w PHP. Pozwalają pobierać rekordy (SELECT), dodawać nowe (INSERT) oraz modyfikować istniejące (UPDATE). Z ich pomocą tworzysz dynamiczne aplikacje, zapisując i przetwarzając dane użytkowników.


Najważniejsze zapytania SQL

  • SELECT
    • Pobiera dane z tabeli, np. SELECT * FROM users zwraca wszystkie pola i rekordy.
    • Możesz dodać warunek: SELECT login FROM users WHERE id = 10.
    • Dla paginacji lub ograniczenia liczby wyników użyj LIMIT i OFFSET.
  • INSERT
    • Dodaje rekord, np. INSERT INTO users (login, email) VALUES ('Ala', '[email protected]').
    • Po udanym wstawieniu możesz uzyskać ID przez mysqli_insert_id (w MySQLi).
  • UPDATE
    • Modyfikuje istniejący rekord. Przykład: UPDATE users SET email='[email protected]' WHERE id=5.
    • Koniecznie stosuj WHERE, by nie zaktualizować całej tabeli przez przypadek.
Przykład
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "test_db";

// Połączenie
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
  die("Błąd połączenia: " . $conn->connect_error);
}

// SELECT – pobranie danych
$sqlSelect = "SELECT id, login, email FROM users LIMIT 3";
$result = $conn->query($sqlSelect);

echo "<h3>Przykład SELECT:</h3>";
if ($result && $result->num_rows > 0) {
  while ($row = $result->fetch_assoc()) {
    echo "ID: " . $row['id'] . ", Login: " . $row['login'] . ", Email: " . $row['email'] . "<br>";
  }
} else {
  echo "Brak wyników.";
}

// INSERT – dodanie nowego użytkownika
$sqlInsert = "INSERT INTO users (login, email) VALUES ('NowyUser', '[email protected]')";
if ($conn->query($sqlInsert) === TRUE) {
  echo "<p>Dodano nowy rekord, ID: " . $conn->insert_id . "</p>";
} else {
  echo "<p>Błąd INSERT: " . $conn->error . "</p>";
}

// UPDATE – aktualizacja emaila dla wybranego id
$sqlUpdate = "UPDATE users SET email='[email protected]' WHERE login='NowyUser'";
if ($conn->query($sqlUpdate) === TRUE) {
  echo "<p>Zaktualizowano " . $conn->affected_rows . " rekord(ów).</p>";
} else {
  echo "<p>Błąd UPDATE: " . $conn->error . "</p>";
}

$conn->close();
?>
Zwrócona zawartość
[Wyświetlenie pierwszych 3 użytkowników z tabeli users]
Dodano nowy rekord, ID: [liczba]
Zaktualizowano 1 rekord(ów).

Przykładowe zastosowania zapytań SELECT, INSERT, UPDATE

  • Panel administracyjny
    • SELECT do wyświetlania listy produktów, INSERT do dodawania nowych towarów, UPDATE do ich edycji.
  • Rejestracja i edycja profilu
    • INSERT podczas tworzenia konta użytkownika, UPDATE przy zmianie hasła czy emaila.
  • Wyszukiwarka
    • SELECT z warunkiem WHERE, np. wyszukiwanie produktów po nazwie.

Podsumowanie

  • SELECT służy do pobierania danych z tabel, możesz ograniczać wyniki przez WHERE i LIMIT.
  • INSERT umożliwia dodanie nowego rekordu, a UPDATE modyfikuje istniejące wiersze.
  • Pamiętaj o warunku WHERE w UPDATE, by przypadkowo nie zmienić całej tabeli.
  • Te trzy zapytania stanowią fundament komunikacji z bazą w większości aplikacji web.