logo

Įvadas į PHP SKVN

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ų:

    Duomenų bazės palaikymas
    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 prijungimas
    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ė.Klaidų tvarkymas
    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.
      Tyli- Tai numatytasis klaidų režimas.Įspėjimas- Tai naudinga derinant.Išimtis- Šis režimas leidžia grakščiai tvarkyti klaidas, slepiant duomenis, kuriuos asmuo gali panaudoti jūsų sistemai išnaudoti.
    Įdėkite ir atnaujinkite
    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:

    Naudojamumas- Jame yra daug pagalbinių funkcijų, leidžiančių atlikti automatines įprastas operacijas.Pakartotinis naudojimas- Jis siūlo vieningą API, kad galėtumėte pasiekti kelias duomenų bazes.Saugumas- Jis naudoja paruoštą teiginį, kuris apsaugo nuo SQL injekcijos. Parengtas sakinys yra iš anksto sudarytas SQL sakinys, kuris atskiria SQL sakinio nurodymą nuo duomenų.

SKVN klasės

Yra trys SKVN klasės, kurios pateiktos toliau:

    SKVN- Tai yra ryšys tarp PHP ir duomenų bazės.PDO pareiškimas- Atstoja parengtą pareiškimą ir įvykdžius pareiškimą nustato susijusį rezultatą.PDO išimtis- Tai reiškia SKVN padarytas klaidas.

SKVN palaikomos duomenų bazės

  1. MySQL
  2. PostgreSQL
  3. Orakulas
  4. Ugnies paukštis
  5. MS SQL serveris
  6. Sybase
  7. Informix
  8. IBM
  9. FreeTDS
  10. SQLite
  11. Cubrid
  12. 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“.

Phppdo

Pastaba: čia aptarsime tik „Windows“ OS diegimo procesą.

2 žingsnis: Įdiekite XAMPP serverį savo sistemoje atlikdami šiuos veiksmus.

Phppdo

3 veiksmas: Pasirinkite komponentus, kuriuos norite įdiegti, ir spustelėkite mygtuką Kitas.

Phppdo

4 veiksmas: Sukurkite naują aplanką pavadinimu xampp toje vietoje, kur norite įdiegti XAMPP.

Phppdo

5 veiksmas: Spustelėkite Kitas čia ir judėkite pirmyn. XAMPP serverio diegimas prasidės nuo čia.

Phppdo

6 veiksmas: XAMPP sėkmingai įdiegtas. Spustelėkite mygtuką Baigti.

Phppdo

7 veiksmas: Pasirinkite pageidaujamą kalbą.

matricos programa c kalba
Phppdo

8 veiksmas: Iš čia paleiskite „Apache“ serverį ir „MySQL“ (kaip parodyta ekrano kopijoje).

Phppdo

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.

Phppdo

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ą.

Phppdo

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(); } ?> 
Phppdo

Duomenų bazės ryšio uždarymas

 getMessage(); } // this command close the connection. $dbConn = null; ?> 

Išvestis

Phppdo