Třída pro správu databází MySQL pomocí MySQLi a pHp

Obsah
The Rozšíření MySQLi je ovladač relační databáze, používá se v programovacím jazyce pHp k poskytování rozhraní s databázemi MySQL.
Výhody používání MySQLi
Připravené příkazy: je snazší vytvářet dotazy, nabízí mnoho zabezpečení proti injekci SQL s funkcí:
 $ mysqli-> připravit ();
Několik dotazů nebo dotazů
Možnost provedení několika dotazů nebo dotazů ve spojení.
Příklad
 $ sqla = "VYBRAT * od klientů;" $ sqlb. = "VYBRAT*Z faktur ***** PODLE ID zákazníka" $ mysqli-> multi_query ($ sqla; sqlb) 
Objektově orientovaný
Tato funkce MySQLi umožňuje vývojářům používat objekty ke zlepšení používání, výkonu a viditelnosti zdrojového kódu.
Ovladač rozšíření MySQLi se používá v programovacím jazyce PHP k poskytování rozhraní k databázím MySQL. Vývojáři programovacího jazyka PHP doporučují používat MySQLi, pokud jde o server MySQL verze 4.1.3 a novější.
Chystáme se vytvořit třídu, kterou budeme používat z pHp s metodami a vlastnostmi pro manipulaci nebo správu jakékoli databáze.
Třída bude následující:
 třída dbmysqli {// deklaruje proměnnou pro připojení public $ connection; // Deklarujeme konstruktor třídy veřejné funkce __construct ($ host, $ uživatel, $ heslo, $ db) {} // funkce pro vytváření tabulek veřejná funkce vytvořit tabulku ($ sql) {} // Uložit nová data do Vložit veřejnou funkci dat databáze ($ tabulka, $ pole data) {} // Odstranit data z databáze vymazat veřejné funkce ($ tabulka, $ pole data) {} Aktualizace veřejné funkce ($ tabulka, $ sada polí, $ podmínka pole) {} / / funkce Hledat v tabulce veřejné vyhledávání funkcí ($ tabulka, $ pole) {}} 
Připojení a třída MySQLi
Abychom mohli připojit server MySQLi, musíme vyvolat metodu konstruktoru a odeslat čtyři argumenty jsou název hostitele, jako je localhost, uživatelské jméno, heslo databáze a název databáze.
V konstruktoru přidáme připojení k serveru:
 veřejná funkce __construct ($ host, $ uživatel, $ heslo, $ db) {$ toto-> připojení = nový mysqli ($ hostitel, $ uživatel, $ clav); } 
Potom jej vyvoláme takto:
 // Připojení k serveru a databázi $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb"); 
Definujeme metodu pro dynamické vytváření tabulek:
 // Funkce vytvářející tabulky veřejné funkce, které lze vytvořit ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "Tabulka byla vytvořena"; } else {echo "Selhalo: tabulka nebyla vytvořena". $ this-> připojení-> chyba; }} 
Pak to vyvoláme takto, vytvoříme sql dotaz a vyvoláme funkci creartabla ():
 $ sql = ”DROP TABLE IF EXISTS` clients`; VYTVOŘIT TABULKU, KDYŽ NEEXISTUJE `customers` (` customerid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (` customerid`)) ”$ connectb -> creartabla ($ sql); 
Z pHpMyAdmin vidíme, jak byla tabulka vytvořena při provádění skript php.

Definujeme způsob vkládání / ukládání dat
Dále vytvoříme metody zvané ABM nebo CRUD, které budou mít na starosti správu dat v tabulkách. K odeslání parametrů každé metodě použijeme pole, kde indexem pole bude pole tabulky a hodnotou tohoto indexu budou data pro pole tabulky. Každý název indexu musí být uzavřen do uvozovek a hodnota musí splňovat následující pravidla:
  • Řetězcové hodnoty musí mít jednoduché uvozovky. Příklad "name" => 'Maria'
  • Číselné hodnoty nesmí mít uvozovky. Příklad „cena“ => 10,50
  • Slovo NULL NEBO prázdné nesmí mít uvozovky. Příklad „cena“ => NULL
 // Vytvoříme funkci, která bude brát jako parametr pole pole => data veřejná funkce vloží ($ tabulka, $ pole data) {// oddělíme data, pokud existuje několik $ pole = implode (",", array_keys (data pole $)); $ i = 0; foreach (datová pole $ jako $ index => hodnota $) {$ data [$ i] = "'". $ hodnota. "'"; $ i ++; } $ data = implode (",", $ data); // Vložíme hodnoty do každého pole, pokud ($ this-> connection-> query ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "New client entered"; } else {echo "Klient nebyl vložen se nezdařil". $ this-> připojení-> chyba; }} 
Vytváříme naši matici s daty, která mohou pocházet z formuláře:
 // Datová matice pro vložení $ customers = array ("name" => 'Carlos Moira', "name" => 'Jose Triana', "name" => 'Julia Ordoñez', "name" => 'Carla Angelez' ); 
Pak to vyvoláme takto, vyvoláme funkci vložení („zákazníci“, $ zákazníci) a přidáme parametry:
 $ conedb -> insert ("klienti", $ klienti);
Definujeme způsob mazání dat
K provedení operace odstranění deklarujeme pole, kde uvedeme, který řádek nebo ID chceme odstranit.
 // funkce k vymazání dat z tabulky veřejná funkce delete ($ tabulka, $ datová pole) {$ i = 0; foreach (datová pole $ jako $ index => hodnota $) {$ data [$ i] = "'". $ hodnota. "'"; $ i ++; } $ pole a data = implode („AND“, $ data); if ($ this-> connection-> query ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record deleted"; } else {echo "Selhalo, záznam nelze smazat". $ this-> připojení-> chyba;}} 
Vytvoříme naši matici s vybranými daty, která lze odstranit z formuláře
 // Datová matice pro smazání $ customers delete = pole ("customer id" => 1, "customer id" => 50, "customer id" => 8, "customer id" => 104); 
Pak to vyvoláme takto, vyvoláme funkci mazání („zákazníci“, $ zákazníci smažou) a přidáme parametry
 $ conectadb -> smazat („klienti“, $ klienti odstranit);
Definujeme způsob aktualizace dat
Chcete -li aktualizovat data řádku, který potřebujeme upravit, deklarujeme dvě asociativní pole, jedno bude upravovat pole a druhé podmínku kde v dotazu SQL. Pravidla matice musí dodržovat stejnou syntaxi, kterou jsme pro matici definovali od začátku.
Vzhledem k syntaxi aktualizace MySQL:
 UPDATE Clients SET name = 'newname' WHERE clientid.id = idvalue; // Vytvoříme funkci, která bude brát jako parametr pole pole => data veřejná funkce Aktualizace ($ tabulka, $ setfields, $ conditionfields) {// oddělíme hodnoty SET pro úpravu $ i = 0; foreach ($ camposset jako $ index => $ data) {$ datová sada [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ datová sada); $ i = 0; foreach ($ conditionfields jako $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("AND", $ podmínka); // Aktualizace záznamů if ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record updated"; } else {echo "Selhalo, záznam nelze smazat". $ this-> připojení-> chyba;}} 
Vytvoříme naše pole s daty SET, která budou polemi, která se mají aktualizovat, a novými hodnotami, také vytvoříme pole pro podmínku WHERE s ID aktualizovaných záznamů, které mohou pocházet z formuláře:
 // Datová matice SET $ customersset = array ("name" => 'Carlos Juan Dolfo', "name" => 'Pedro Dorien Triana', "name" => 'Enrique Ordoñez', "name" => 'Carla Dolores Angeles '); $ customerswhere = pole ("customerid" => 1, "customerid" => 2, "customerid" => 5, "customerid" => 10); 
Poté jej takto vyvoláme, vyvoláme funkci Update („zákazníci“, $ customersset, $ customerswhere) a přidáme do něj parametry.
 $ dbconnect-> Aktualizace („klienti“, $ clientsset, $ clientswhere);
Ve všech dotazech používáme k detekci chyb nativní funkci MySQLi $ mysqli-> chyba, který zobrazí chybovou zprávu pro jakýkoli dotaz SQL nebo funkci MySQLi, která mohla být spuštěna a selhala, abychom věděli, proč k chybě došlo.
Definujeme metodu vyhledávání dat
Abychom získali data z tabulky, vytvoříme metodu dotazu se dvěma parametry, jedním je název tabulky a druhým pole, které obsahuje název sloupců a hodnotu, která má být prohledávána.
Můžeme určit typ matice výsledků, kterou chceme získat. Možné hodnoty pro tento parametr jsou konstanty MYSQLI_ASSOC, MYSQLI_NUM.
Typ pole MYSQLI_ASSOC
 Pole {name => 'Carlos Juan Dolfo', name ”=> 'Enrique Ordoñez'} 
Typ pole MYSQLI_NUM
 Pole {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} vyhledávání veřejných funkcí ($ tabulka, $ pole) {$ pole = implode (",", $ pole); $ result = $ this-> connection-> query ("SELECT $ fields FROM $ table"); vrátit $ result-> fetch_all (MYSQLI_ASSOC); } 
Vytváříme naši matici s daty pro vyhledávání, které mohou pocházet z formuláře:
 // Pole dat pro vyhledávání $ clients search = array („client id“, ”name”); 
Pak to vyvoláme takto, vyvoláme vyhledávací funkci („zákazníci“, $ zákazníci hledají) a přidáme parametry:
 $ connectdb -> hledání ($ tabulka, $ hledání klientů);
Tato funkce vrací a překrývat že budeme muset projít jako pole, abychom viděli data každého pole:Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave