PHP yra atvirojo kodo bendrosios paskirties scenarijų kalba, plačiai naudojama kuriant dinamiškus ir interaktyvius tinklalapius. PHP gali pasiekti daugybę reliacinių duomenų bazių valdymo sistemų, tokių kaip MYSQL, SQLite , ir PostgreSQL . The PHP 5.1 versija pasiūlė naują duomenų bazės ryšio abstrakcijos biblioteką, kuri yra PHP duomenų objektai (SKVN).
Kas yra SKVN?
SKVN reiškia PHP duomenų objektas , kuris yra PHP plėtinys, apibrėžiantis lengvą ir nuoseklią sąsają, leidžiančią pasiekti PHP duomenų bazę. Tai PHP plėtinių rinkinys, suteikiantis pagrindinę SKVN klasę ir duomenų bazei būdingą tvarkyklę. Kiekviena duomenų bazės tvarkyklė gali atskleisti duomenų bazei būdingas funkcijas kaip įprastą plėtinio funkciją, kuri įgyvendina SKVN sąsają.
Pastaba: Negalime atlikti jokios duomenų bazės funkcijos naudodami patį SKVN plėtinį. Norėdami pasiekti duomenų bazės serverį, turime naudoti konkrečiai duomenų bazei skirtą SKVN tvarkyklę.
SKVN daugiausia dėmesio skiria duomenų prieigos, o ne duomenų bazės abstrakcijai. Tai suteikia duomenų prieigos abstrakcijos sluoksnis , o tai reiškia, kad nepaisant to, kokią duomenų bazę naudojame, užklausoms pateikti ir duomenims gauti turime naudoti tas pačias tos duomenų bazės teikiamas funkcijas. SKVN nepateikia duomenų abstrakcijos, nes neperrašo SQL ir nemėgdžioja trūkstamų funkcijų.
SKVN pranašumas
SKVN pateikia įvairius darbo su objektais būdus ir nuskaito paruoštus teiginius, kurie labai palengvina darbą. Tai PHP prieigos prie duomenų bazės įrankis, per kurį įgaliname vienodą prieigą prie kelių duomenų bazių.
SKVN leidžia palyginti sklandžiai perjungti skirtingas duomenų bazes ir platformas, o tai galima lengvai padaryti pakeitus ryšio eilutę. Ji nepalaiko duomenų bazei būdingų sintaksių.
Yra keletas SKVN pranašumų:
SKVN plėtinys gali pasiekti bet kurią duomenų bazę, kuri yra parašyta SKVN tvarkyklei. Yra keletas SKVN tvarkyklių, kurios naudojamos „FreeTDS“, „Microsoft SQL Server“, „Sybase“, IBM DB2, „Oracle“ skambučių sąsaja, „Firebird“ / „Interbase 6“ , ir PostgreSQL duomenų bazių, tarp daugelio kitų.
Tvarkyklės automatiškai pasiekiamos ne kiekvienoje sistemoje, todėl turime rasti turimas tvarkykles ir prireikus jas pridėti.
Duomenų bazės ryšiui užmegzti yra įvairių sintaksių. Šios sintaksės priklauso nuo konkrečių duomenų bazių. Naudojant SKVN, operacijos turi būti suvyniotos į try/catch blokus ir naudoti išimties techniką.
Paprastai reikia sukurti tik vieną ryšį, o šie ryšiai uždaromi užprogramavus duomenų bazę, kad ji būtų nulinė.
SKVN leidžia naudoti klaidas tvarkyti išimtis. Norint sukurti išimtį, SKVN gali būti priverstas į atitinkamą klaidos režimo atributą.
Yra trys klaidų režimai, t. Tyli (numatytas), Įspėjimas , ir Išimtis . Įspėjimas ir išimtis yra naudingesni programuojant DRY.
SKVN sumažina dažniausiai naudojamą duomenų bazės įterpimo ir atnaujinimo operaciją į dviejų etapų procesą, t.y.
Parengti >> [Surišti] >> Vykdyti.
Taikydami šį metodą galime visiškai išnaudoti SKVN parengtus teiginius, kurie apsaugo nuo kenkėjiškų atakų per SQL injekciją.
Paruošti teiginiai yra iš anksto sukompiliuoti SQL sakiniai, kuriuos galima vykdyti kelis kartus, siunčiant šiuos duomenis į serverį. Šie duomenys, naudojami rezervuotoje vietoje, yra automatiškai apsaugoti nuo SQL injekcijos atakos.
SKVN naudojimo pranašumai
SKVN yra vietinė duomenų bazės tvarkyklė. Toliau pateikiami keli SKVN naudojimo pranašumai:
SKVN klasės
Yra trys SKVN klasės, kurios pateiktos toliau:
SKVN palaikomos duomenų bazės
- MySQL
- PostgreSQL
- Orakulas
- Ugnies paukštis
- MS SQL serveris
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Cubrid
- 4D
SKVN ir MySQLi palyginimas
Norėdami pasiekti duomenų bazę naudodami PHP, turime daugiausia dvi parinktis - MySQLi ir SKVN (PHP duomenų objektas). „MySQLi“ yra originalus PHP, užtikrinantis greitesnį našumą, o dauguma patyrusių kūrėjų nori dirbti su SKVN, nes ji palaiko daugybę duomenų bazių tvarkyklių. Yra keletas skirtumų tarp SKVN ir MySQLi, išvardytų toliau, atsižvelgiant į jų savybes.
funkcijos | SKVN | MySQLi |
---|---|---|
DB palaikymas | 12 skirtingų vairuotojų | Tik MySQL |
Ryšys | Lengva | Lengva |
API | ATVIRAS | OOP + procedūra |
Spektaklis | Greitai | Greitai |
Pavadintas parametras | Taip | Nr |
Objektų kartografavimas | Taip | Taip |
Išsaugota procedūra | Taip | Taip |
Kliento pusės parengti pareiškimai | Taip | Nr |
Saugumas | Saugesnis nei MySQLi. | Saugus, bet ne daugiau kaip SKVN. |
Kuriam turėtų būti teikiama pirmenybė tarp SKVN ar MySQLi?
Tiek SKVN, tiek MySQLi turi savų pranašumų:
- Kaip matėme anksčiau, SKVN veikia 12 skirtingų duomenų bazių sistemų, o MySQL gali dirbti tik su MySQL duomenų baze. Taigi, jei norime perkelti savo projektą į kitą duomenų bazę, SKVN tai palengvina. „MySQLi“ turime perrašyti visą kodą.
- SKVN ir „MySQLi“ yra orientuoti į objektus, tačiau „MySQLi“ taip pat siūlo procedūrinę API. Abu palaiko parengtus pareiškimus. Parengti pareiškimai yra svarbūs žiniatinklio programų saugai, nes jie apsaugo nuo SQL injekcijos.
Reikalavimas
Šiam plėtiniui sukurti nereikia išorinių bibliotekų.
Diegimo procesas
1 žingsnis: Atsisiųskite naujausią XAMPP serverį iš čia https://www.apachefriends.org/download.html skirtingoms platformoms, tokioms kaip „Windows“, „Linux“ ir „MacOS“.
Pastaba: čia aptarsime tik „Windows“ OS diegimo procesą.
2 žingsnis: Įdiekite XAMPP serverį savo sistemoje atlikdami šiuos veiksmus.
3 veiksmas: Pasirinkite komponentus, kuriuos norite įdiegti, ir spustelėkite mygtuką Kitas.
4 veiksmas: Sukurkite naują aplanką pavadinimu xampp toje vietoje, kur norite įdiegti XAMPP.
5 veiksmas: Spustelėkite Kitas čia ir judėkite pirmyn. XAMPP serverio diegimas prasidės nuo čia.
6 veiksmas: XAMPP sėkmingai įdiegtas. Spustelėkite mygtuką Baigti.
7 veiksmas: Pasirinkite pageidaujamą kalbą.
matricos programa c kalba
8 veiksmas: Iš čia paleiskite „Apache“ serverį ir „MySQL“ (kaip parodyta ekrano kopijoje).
9 veiksmas: Dabar atidarykite php.ini iš C:/xampp/php/php.ini (kur įdiegėte XAMPP) ir panaikinkite plėtinio komentarą „php_pdo_mysql.dll“ ir „php_pdo.dll“ (jei dirbate su MySQL duomenų baze), arba „php_pdo_oci.dll“ (jei dirbate su Oracle duomenų baze). Dabar pradėkite dirbti su duomenų baze. PHP 5.1 versijoje jis jau nustatytas.
Darbas su SKVN
Pirmiausia turime sukurti duomenų bazę, todėl sukurkite duomenų bazę pavadinimu myDB iš čia.
Duomenų bazės ryšys
Norint sąveikauti su duomenų baze, visada reikalingas duomenų bazės ryšys. Taigi, norėdami pasiekti duomenų bazę, turime žinoti identifikatorių, ty duomenų bazės vietą, duomenų bazės pavadinimą, vartotojo vardą ir slaptažodį.
Dabar sukurkite duomenų bazės ryšio programą naudodami SKVN bet kuriame teksto rengyklėje, pvz., Notepad arba Notepad++, ir išsaugokite ją pavadinimu coonection.php. Paleiskite jį XAMPP serveryje naudodami localhost/80.
Pavyzdys
getMessage(); } ?>
Išvestis
Paleiskite jį serveryje naudodami šį URL localhost/Xampp/pdoexample/connection.php/ arba kur išsaugojote programą.
Tvarkant ryšio klaida
PDOException objektas bus išmestas, jei bus kokia nors ryšio klaida. Galime užfiksuoti išimtį, jei norime tvarkyti klaidos sąlygą, arba galime palikti ją visuotinei išimčių tvarkyklei, kurią gali nustatyti set_exception_handler() funkcija.
Pavyzdys
Šiame pavyzdyje dbUser(user-id) yra neteisingas, todėl jis padarys išimtį, kaip matome išvestyje.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?>
Duomenų bazės ryšio uždarymas
getMessage(); } // this command close the connection. $dbConn = null; ?>
Išvestis