Sadržaj
The MySQLi proširenje je upravljački program za relacijske baze podataka, koristi se u programskom jeziku pHp za pružanje sučelja s MySQL bazama podataka.Prednosti korištenja MySQLi
Pripremljene izjave: lakše je stvarati upite, nudi puno sigurnosti od SQL ubrizgavanja, s funkcijom:
$ mysqli-> pripremiti ();Više upita ili upita
Mogućnost izvršavanja nekoliko upita ili upita u vezi.
Primjer
$ sqla = "ODABERI * od klijenata;" $ sqlb. = "SELECT*FROM invoices ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb)Objektno orijentirano
Ova značajka MySQLi omogućuje programeru korištenje objekata za poboljšanje uporabe, performansi i vidljivosti izvornog koda.
Upravljački program za proširenje MySQLi koristi se u programskom jeziku PHP za pružanje sučelja MySQL bazama podataka. Programeri programskog jezika PHP preporučuju korištenje MySQLi -a kada su u pitanju verzije poslužitelja MySQL 4.1.3 i novije.
Napravit ćemo klasu za korištenje iz pHp -a s metodama i svojstvima za manipuliranje ili upravljanje bilo kojom bazom podataka.
Čas će biti sljedeći:
klasa dbmysqli {// deklarira varijablu za vezu public $ connection; // Deklariramo konstruktor javne funkcije klase __construct ($ host, $ user, $ password, $ db) {} // funkciju za stvaranje tablica javnu funkciju create table ($ sql) {} // Spremanje novih podataka u podaci baze podataka unesite javnu funkciju ($ table, $ field data) {} // Brisanje podataka iz javne funkcije baze podataka delete ($ table, $ field data) {} javna funkcija Update ($ table, $ field set, $ field condition) {} / / funkcija pretraživanja u tablici pretraživanje javnih funkcija ($ table, $ fields) {}}MySQLi Veza i klasa
Za povezivanje MySQLi poslužitelja moramo pozvati metodu konstruktora i poslati četiri argumenta koji su naziv hosta kao što su localhost, korisničko ime, lozinka baze podataka i naziv baze podataka.
U konstruktoru dodajemo vezu na poslužitelj:
javna funkcija __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); }Tada ćemo ga pozvati ovako:
// Spajanje na poslužitelj i bazu podataka $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb");Definiramo metodu za dinamičko stvaranje tablica:
// Funkcija koja stvara tablice javna funkcija createstable ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "Tablica je stvorena"; } else {echo "Neuspjelo: tablica nije stvorena". $ this-> connection-> error; }}Zatim ćemo ga dozvati ovako, stvoriti sql upit i pozvati funkciju creartabla ():
$ sql = ”DROP TABELA AKO POSTOJI` klijenti`; IZRADI TABLICU AKO NE POSTOJI `customers` (` customerid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (` customerid`)) ”$ connectb -> creartabla ($ sql);Iz pHpMyAdmina možemo vidjeti kako je tablica stvorena prilikom izvršavanja php skripta.
Definiramo metodu za umetanje / spremanje podataka
Zatim stvaramo metode zvane ABM ili CRUD, koje će biti zadužene za upravljanje podacima u tablicama. Za slanje parametara svakoj metodi koristit ćemo niz u kojem će indeks niza biti polje tablice, a vrijednost tog indeksa podaci za polje tablice. Svaki naziv indeksa mora biti zatvoren u dvostruke navodnike, a vrijednost mora zadovoljiti sljedeća pravila:
- Vrijednosti niza moraju imati jednostruke navodnike. Primjer "ime" => 'Marija'
- Numeričke vrijednosti ne smiju imati navodnike. Primjer "cijena" => 10,50
- Riječ NULL ILI prazna ne smije imati navodnike. Primjer "cijena" => NULL
// Kreiramo funkciju koja će kao parametar uzeti polje polja => data public function insert ($ table, $ field data) {// odvojimo podatke ako postoji nekoliko $ field = implode (",", array_keys ($ podaci polja)); $ i = 0; foreach ($ podatkovna polja kao $ index => $ vrijednost) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ data = implode (",", $ data); // Umetamo vrijednosti u svako polje ako ($ this-> connection-> query ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Novi klijent umetnut"; } else {echo "Klijent nije umetnut nije uspio". $ this-> connection-> error; }}Mi stvaramo svoju matricu s podacima koji mogu doći iz oblika:
// Podatkovna matrica za umetanje $ customers = array ("name" => 'Carlos Moira', "name" => 'Jose Triana', "name" => 'Julia Ordoñez', "name" => 'Carla Angelez' );Zatim ćemo ga dozvati ovako, pozvat ćemo funkciju umetanja ("customers", $ customers) i dodati parametre:
$ conedb -> insert ("klijenti", $ klijenti);Definiramo način brisanja podataka
Kako bismo izvršili operaciju brisanja, deklariramo niz u kojem ćemo naznačiti koji redak ili ID želimo izbrisati.
// funkcija za brisanje podataka iz tablice javna funkcija delete ($ table, $ datafields) {$ i = 0; foreach ($ podatkovna polja kao $ index => $ vrijednost) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ field and data = implode ("I", $ data); if ($ this-> connection-> query ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Zapis izbrisan"; } else {echo "Nije uspjelo, zapis se nije mogao izbrisati". $ this-> connection-> error;}}Mi stvaramo svoju matricu s odabranim podacima za brisanje koji mogu doći iz obrasca
// Podatkovna matrica za brisanje $ customers delete = array ("customer id" => 1, "customer id" => 50, "customer id" => 8, "customer id" => 104);Zatim ćemo je pozvati ovako, pozvat ćemo funkciju brisanja ("customers", $ customers delete) i dodati parametre
$ conectadb -> delete ("klijenti", $ clients brisanje);Definiramo način ažuriranja podataka
Da bismo ažurirali podatke retka koje moramo izmijeniti, deklarirat ćemo dva asocijativna niza, jedan će biti za mijenjanje polja, a drugi za uvjet gdje u SQL upitu. Pravila matrice moraju se pridržavati iste sintakse koju smo definirali za matricu od početka.
S obzirom na sintaksu ažuriranja MySQL:
UPDATE Klijenti SET name = 'newname' WHERE clientid.id = idvalue; // Kreiramo funkciju koja će kao parametar uzeti polje polja => javna funkcija podataka Update ($ table, $ setfields, $ conditionfields) {// odvajamo SET vrijednosti za izmjenu $ i = 0; foreach ($ camposset kao $ index => $ data) {$ skup podataka [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ datoset); $ i = 0; foreach ($ conditionfields kao $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("I", $ uvjet); // Ažuriraj zapise if ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Zapis ažuriran"; } else {echo "Nije uspjelo, zapis se nije mogao izbrisati". $ this-> connection-> error;}}Naš niz stvaramo s podacima SET koji će biti polja za ažuriranje i novim vrijednostima, također stvaramo niz za uvjet WHERE s ID -om zapisa za ažuriranje koji mogu doći iz obrasca:
// Podatkovna matrica SET $ customersset = array ("name" => 'Carlos Juan Dolfo', "name" => 'Pedro Dorien Triana', "name" => 'Enrique Ordoñez', "name" => 'Carla Dolores Angeles '); $ customerswhere = array ("customerid" => 1, "customerid" => 2, "customerid" => 5, "customerid" => 10);Zatim ćemo je pozvati ovako, pozvat ćemo funkciju Update ("customers", $ customersset, $ customerswhere) i dodati joj parametre.
$ dbconnect-> Ažuriranje ("klijenti", $ clientsset, $ clientsdje);U svim upitima koristimo izvornu funkciju MySQLi za otkrivanje pogrešaka $ mysqli-> pogreška, koja će prikazati poruku o pogrešci za bilo koji SQL upit ili funkciju MySQLi koja je možda izvršena i nije uspjela, tako da možemo znati zašto je došlo do pogreške.
Definiramo metodu pretraživanja podataka
Za dobivanje podataka iz tablice stvaramo metodu upita s dva parametra, jedan je naziv tablice, a drugi je niz koji sadrži naziv stupaca i vrijednost za pretraživanje.
Možemo navesti vrstu matrice rezultata koju trebamo dobiti. Moguće vrijednosti za ovaj parametar su konstante MYSQLI_ASSOC, MYSQLI_NUM.
Vrsta niza MYSQLI_ASSOC
Polje {name => 'Carlos Juan Dolfo', name ”=> 'Enrique Ordoñez'}Vrsta niza MYSQLI_NUM
Polje {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} pretraživanje javnih funkcija ($ tablica, $ polja) {$ polja = implode (",", $ polja); $ result = $ this-> connection-> query ("SELECT $ fields FROM $ table"); return $ result-> fetch_all (MYSQLI_ASSOC); }Mi stvaramo svoju matricu s podacima za pretraživanje koji mogu doći iz oblika:
// Niz podataka za pretraživanje $ clients search = array ("id klijenta", "ime");Zatim ćemo je pozvati ovako, pozvat ćemo funkciju pretraživanja ("customers", $ customers search) i dodati parametre:
$ connectdb -> pretraživanje ($ table, $ clients search);Ova funkcija vraća a recorset kroz koji ćemo morati proći kao niz da bismo vidjeli podatke svakog polja:Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod