Spisie treści
ten Rozszerzenie MySQLi jest sterownikiem relacyjnej bazy danych, używanym w języku programowania pHp w celu zapewnienia interfejsu z bazami danych MySQL.Zalety korzystania z MySQLi
Przygotowane zestawienia: łatwiej tworzyć zapytania, oferuje duże zabezpieczenie przed iniekcją SQL, z funkcją:
$ mysqli-> przygotuj ();Wiele zapytań lub zapytań
Możliwość wykonania kilku zapytań lub zapytań w połączeniu.
Przykład
$ sqla = "WYBIERZ * z klientów;" $ sqlb. = "SELECT * FROM faktur ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb)Zorientowany obiektowo
Ta funkcja MySQLi pozwala programiście na używanie obiektów w celu poprawy użycia, wydajności i widoczności kodu źródłowego.
Sterownik MySQLi Extension jest używany w języku programowania PHP, aby zapewnić interfejs do baz danych MySQL. Twórcy języka programowania PHP zalecają używanie MySQLi, jeśli chodzi o serwer MySQL w wersji 4.1.3 i nowszych.
Zamierzamy stworzyć klasę do użycia z pHp z metodami i właściwościami do manipulowania lub zarządzania dowolną bazą danych.
Klasa będzie następująca:
class dbmysqli {// zadeklaruj zmienną dla połączenia public $ connection; // Deklarujemy konstruktor klasy public function __construct ($ host, $ user, $ password, $ db) {} // funkcja do tworzenia tabel public function create table ($ sql) {} // Zapis nowych danych w public function insert ($table, $ field data) {} // Usuń dane z bazy danych public function delete ($ table, $ field data) {} public function Update ($ table, $ field set, $ field condition) {} / / funkcja Wyszukiwanie w tabeli wyszukiwanie funkcji publicznych (tabela $, pola $) {}}Połączenie i klasa MySQLi
Aby połączyć się z serwerem MySQLi musimy wywołać metodę konstruktora i wysłać cztery argumenty to nazwa hosta np. localhost, nazwa użytkownika, hasło do bazy danych oraz nazwa bazy danych.
W konstruktorze dodajemy połączenie do serwera:
public function __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); }Następnie wywołamy to w ten sposób:
// Połączenie z serwerem i bazą danych $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb");Definiujemy sposób dynamicznego tworzenia tabel:
// Funkcja tworząca tabele public function createtable ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "Tabela została utworzona"; } else {echo "Failed: table not created" $ this-> connection-> error; }}Następnie wywołamy to w ten sposób, utworzymy zapytanie sql i wywołamy funkcję kretabla ():
$ sql = ”DROP TABLE IF EXISTS` klientów`; CREATE TABLE IF NOT EXISTS `customers` (` customerid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (` customerid`)) ”$ connectb -> creartabla ($ sql);Z pHpMyAdmin możemy zobaczyć, jak powstała tabela podczas wykonywania skrypt php.
Definiujemy metodę wstawiania/zapisywania danych
Następnie tworzymy metody zwane ABM lub CRUD, które będą odpowiedzialne za zarządzanie danymi w tabelach. Do wysłania parametrów do każdej metody użyjemy tablicy, w której indeksem tablicy będzie pole tabeli, a wartością tego indeksu dane dla pola tabeli. Każda nazwa indeksu musi być ujęta w cudzysłów, a wartość musi spełniać następujące zasady:
- Wartości ciągu muszą mieć pojedyncze cudzysłowy. Przykład "imię" => 'Maria'
- Wartości liczbowe nie mogą zawierać cudzysłowów. Przykład „cena” => 10,50
- Słowo NULL OR empty nie może być w cudzysłowie. Przykład "cena" => NULL
// Tworzymy funkcję, która jako parametr przyjmie pole tablicy => data public function insert ($tabela, $ pole dane) {// rozdzielamy dane jeśli jest ich kilka $pole = implode (",", array_keys ($ pole dane)); $i = 0; foreach ($ pola danych jako indeks $ => $ wartość) {$ dane [$ i] = "'". $ wartość. "'"; $i++; } $ dane = implodować (",", $ dane); // Wstawiamy wartości w każde pole if ($ this-> connection-> query ("INSERT INTO $ table ($index) VALUES ($ data)") === TRUE) {echo "Wstawiono nowego klienta"; } else {echo "Nie włożono klienta nie powiodło się" $ this-> connection-> error; }}Naszą macierz tworzymy z danych, które mogą pochodzić z formularza:
// Macierz danych do wstawienia $ customers = array ("name" => 'Carlos Moira', "name" => 'Jose Triana', "name" => 'Julia Ordoñez', "name" => 'Carla Angelez' );Następnie wywołamy to w ten sposób, wywołamy funkcję insert ("klienci", $klienci) i dodamy parametry:
$conedb -> wstaw ("klienci", $ klienci);Definiujemy metodę usuwania danych
Aby przeprowadzić operację usuwania, deklarujemy tablicę, w której wskażemy, który wiersz lub id chcemy usunąć.
// funkcja do usuwania danych z tabeli public function delete ($ table, $ datafields) {$ i = 0; foreach ($ pola danych jako indeks $ => $ wartość) {$ dane [$ i] = "'". $ wartość. "'"; $i++; } $ pole i dane = imploduj ("AND", $ dane); if ($ this-> connection-> query ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Rekord usunięty"; } else {echo "Nie udało się, wpis nie mógł zostać usunięty". $ this-> połączenie-> błąd;}}Tworzymy naszą macierz z wybranymi danymi do usunięcia, które mogą pochodzić z formularza
// Macierz danych do usuwania $ klientów delete = array ("identyfikator klienta" => 1, ”identyfikator klienta” => 50, „identyfikator klienta” => 8, „identyfikator klienta” => 104);Następnie wywołamy to w ten sposób, wywołujemy funkcję usuwania („klienci”, $ klienci usuwają) i dodajemy parametry
$ conectadb -> usuń („klienci”, $ klienci usuń);Definiujemy metodę aktualizacji danych
Aby zaktualizować dane wiersza, który musimy zmodyfikować, zadeklarujemy dwie tablice asocjacyjne, jedną dla pól do modyfikacji, a drugą dla warunku gdzie w zapytaniu SQL. Reguły macierzy muszą być zgodne z tą samą składnią, którą od początku zdefiniowaliśmy dla macierzy.
Biorąc pod uwagę składnię aktualizacji MySQL:
UPDATE Klienci SET nazwa = 'nowanazwa' GDZIE clientid.id = idvalue; // Tworzymy funkcję, która jako parametr przyjmie pole tablicy => data public function Update ($table, $setfields, $ conditionfields) {// rozdzielamy wartości SET do modyfikacji $i=0; foreach ($ camposset as $ index => $ data) {$ dataset [$ i] = $ index. "= '". $ data. "'"; $i++; } $ queryset = imploduj (",", $ dataset); $i = 0; foreach ($ conditionfields as $ index => $ conditiondata) {$ condition [$ i] = $index. "= '". $ conditiondata. "'"; $i++; } $warunek zapytania = imploduj ("AND", $warunek); // Aktualizuj rekordy if ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Rekord zaktualizowany "; } else {echo "Nie udało się, wpis nie mógł zostać usunięty". $ this-> połączenie-> błąd;}}Tworzymy naszą tablicę z danymi SET, które będą polami do aktualizacji i nowymi wartościami, tworzymy również tablicę dla warunku WHERE z id rekordów do aktualizacji, które mogą pochodzić z formularza:
// Data matrix SET $ customersset = array ("name" => 'Carlos Juan Dolfo', "name" => 'Pedro Dorien Triana', "name" => 'Enrique Ordoñez', "name" => 'Carla Dolores Anielski”); $ customerswhere = array ("customerid" => 1, ”customerid” => 2, „customerid” => 5, „customerid” => 10);Następnie wywołamy go w ten sposób, wywołamy funkcję Update ("customers", $ customersset, $ customerswhere) i dodamy do niej parametry.
$ dbconnect-> Update ("klienci", $ zestaw_klientów, $kliencigdzie);We wszystkich zapytaniach do wykrywania błędów używamy natywnej funkcji MySQLi $ mysqli-> błąd, który pokaże komunikat o błędzie dla dowolnego zapytania SQL lub funkcji MySQLi, które mogło zostać wykonane i nie powiodło się, dzięki czemu będziemy wiedzieć, dlaczego wystąpił błąd.
Definiujemy metodę wyszukiwania danych
Aby uzyskać dane z tabeli tworzymy metodę zapytania z dwoma parametrami, jeden to nazwa tabeli, a drugi to tablica zawierająca nazwy kolumn i wartość do wyszukania.
Możemy wskazać rodzaj macierzy wyników do uzyskania. Możliwe wartości tego parametru to stałe MYSQLI_ASSOC, MYSQLI_NUM.
Typ tablicy MYSQLI_ASSOC
Array {imię => 'Carlos Juan Dolfo', imię ”=> 'Enrique Ordoñez'}Typ tablicy MYSQLI_NUM
Tablica {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} wyszukiwanie funkcji publicznych (tabela $, pola $) { pola $ = imploduj (",", $ pola); $ wynik = $ to-> połączenie-> zapytanie ("SELECT $ pola z tabeli $"); return $ result-> fetch_all (MYSQLI_ASSOC); }Tworzymy naszą macierz z danymi do wyszukiwania, które mogą pochodzić z formularza:
// Tablica danych do przeszukania $ klienci search = array ("identyfikator klienta", ”nazwa”);Następnie wywołamy to w ten sposób, wywołamy funkcję wyszukiwania ("klienci", $klienci szukaj) i dodamy parametry:
$ connectdb -> search ($ tabela, $ wyszukiwanie klientów);Ta funkcja zwraca a recorset że będziemy musieli przejść jako tablicę, aby zobaczyć dane każdego pola:Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt