czwartek,
PHP: Funkcje mysqli
Rozszerzenie mysqli
(MySQL Improved) służy do komunikacji z bazami danych MySQL. Jest to ulepszona wersja starszego rozszerzenia mysql
i oferuje wiele funkcji, które ułatwiają pracę z bazami danych MySQL. Rozszerzenie mysqli
jest obiektowo-relacyjnym interfejsem mapowania, co oznacza, że można go używać zarówno w stylu proceduralnym, jak i obiektowym. Przedstawione przykłady pokazują styl proceduralny. Wybór stylu zależy od preferencji programisty i specyfiki projektu.
Połączenie z Bazą Danych
mysqli_connect()
- łączy się z serwerem MySQL.mysqli_real_connect()
- zaawansowana wersja funkcjimysqli_connect
.mysqli_close()
- zamyka połączenie z bazą danych.
Przykład
$conn = mysqli_connect("hostname", "username", "password", "database");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
Wykonywanie Zapytań
mysqli_query()
- wykonuje zapytanie SQL.mysqli_multi_query()
- wykonuje wiele zapytań SQL.
Przykład
$result = mysqli_query($conn, "SELECT * FROM table");
Pobieranie wyników zapytania
mysqli_fetch_array()
- pobiera wiersz wyniku jako tablicę asocjacyjną, numeryczną lub obie.mysqli_fetch_assoc()
- pobiera wiersz wyniku jako tablicę asocjacyjną.mysqli_fetch_row()
- pobiera wiersz wyniku jako tablicę numeryczną.mysqli_fetch_object()
- pobiera wiersz wyniku jako obiekt.
Przykład
while($row = mysqli_fetch_assoc($result)) {
echo $row["column_name"];
}
Bezpieczeństwo
mysqli_real_escape_string()
- chroni przed atakami SQL injection poprzez "wyczyszczenie" danych wejściowych.mysqli_prepare()
- przygotowuje zapytanie SQL do wykonania, używane z parametrami powiązanymi (binding parameters) dla zwiększenia bezpieczeństwa.
Przykład
$stmt = mysqli_prepare($conn, "INSERT INTO table (column) VALUES (?)");
mysqli_stmt_bind_param($stmt, "s", $value);
mysqli_stmt_execute($stmt);
Obsługa błędów
mysqli_error()
- zwraca opis ostatniego błędu.mysqli_errno()
- zwraca kod ostatniego błędu.
Przykład
if (mysqli_query($conn, $sql) === FALSE) {
echo "Error: " . mysqli_error($conn);
}
Inne funkcje
mysqli_insert_id()
- zwraca ID ostatnio wstawionego wiersza.mysqli_affected_rows()
- zwraca liczbę wierszy dotkniętych ostatnim zapytaniem.mysqli_set_charset()
- ustawia zestaw znaków dla połączenia.