Połączenie z MySQL: rozszerzenie MySQLi

Rozszerzenie MySQLi w PHP umożliwia łączenie się z bazą danych MySQL, wykonywanie zapytań SQL i pobieranie wyników. Zapewnia obiektywny interfejs (klasa mysqli) i procedurowy, dając większą kontrolę niż starsze rozszerzenie mysql_*.


Podstawy połączenia z MySQL przy użyciu MySQLi

  • Tryb obiektowy
    • Tworzysz obiekt $conn = new mysqli(host, user, pass, dbname);.
    • Sprawdzasz $conn->connect_error w celu wykrycia błędów połączenia.
  • Tryb procedurowy
    • Funkcje: mysqli_connect(), mysqli_query(), itp.
    • Wiele osób preferuje jednak interfejs obiektowy ze względu na czytelność.
  • Charset
    • Ustaw kodowanie np. $conn->set_charset("utf8");, aby uniknąć problemów z polskimi znakami.
  • Błędy i wyjątki
    • Możesz użyć try/catch z trybem wyjątków w mysqli, by kontrolować błędy bazodanowe.
Przykład
<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbname = "test_db";

// Tworzenie obiektu mysqli
$conn = new mysqli($host, $user, $pass, $dbname);

// Sprawdzenie błędów połączenia
if ($conn->connect_error) {
  die("Błąd połączenia: " . $conn->connect_error);
}

// Ustawienie kodowania
$conn->set_charset("utf8");

// Przykładowe zapytanie
$sql = "SELECT id, nazwa FROM produkty LIMIT 5";
$result = $conn->query($sql);

if ($result && $result->num_rows > 0) {
  echo "<ul>";
  while ($row = $result->fetch_assoc()) {
    echo "<li>ID: {$row['id']} | Nazwa: {$row['nazwa']}</li>";
  }
  echo "</ul>";
} else {
  echo "Brak wyników lub błąd w zapytaniu.";
}

// Zamknięcie połączenia
$conn->close();
?>
Zwrócona zawartość
[Listowanie przykładowych produktów z bazy test_db, np. ID: 1 | Nazwa: Telefon]

Przykładowe zastosowania MySQLi

  • System logowania
    • Sprawdzanie wpisanych danych w tabeli użytkowników.
  • Wyświetlanie list produktów
    • Pobieranie danych z bazy i prezentacja w tabeli, liście itp.
  • Panel administracyjny
    • Dodawanie, edycja i usuwanie rekordów w bazie, np. artykuły czy wpisy blogowe.

Podsumowanie

  • Rozszerzenie MySQLi oferuje obiektowy i procedurowy sposób łączenia się z bazą MySQL.
  • Po połączeniu warto ustawić charset na "utf8", aby obsłużyć polskie znaki i inne Unicode.
  • Obsługa zapytań SQL odbywa się przez $conn->query(), wyniki odbieramy pętlą fetch_assoc().
  • Stosuj try/catch lub sprawdzaj $conn->connect_error, aby przechwytywać błędy połączenia.