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.