logo

Introduksjon til PHP PDO

PHP er et åpen kildekode for generell skriptspråk, som er mye brukt for å lage dynamiske og interaktive nettsider. PHP kan få tilgang til et stort utvalg av relasjonsdatabasestyringssystemer som f.eks MYSQL, SQLite , og PostgreSQL . De PHP 5.1 versjonen tilbød et nytt abstraksjonsbibliotek for databaseforbindelse, som er PHP-dataobjekter (PUD).

Hva er PUD?

PUD viser til PHP dataobjekt , som er en PHP-utvidelse som definerer et lett og konsistent grensesnitt for tilgang til en database i PHP. Det er et sett med PHP-utvidelser som gir en kjerne PDO-klasse og databasespesifikk driver. Hver databasedriver kan avsløre databasespesifikke funksjoner som en vanlig utvidelsesfunksjon som implementerer PUD-grensesnittet.

Merk: Vi kan ikke utføre noen type databasefunksjon ved å bruke selve PDO-utvidelsen. For å få tilgang til en databaseserver må vi bruke en databasespesifikk PDO-driver.

PUD fokuserer hovedsakelig på abstraksjon av datatilgang i stedet for databaseabstraksjon. Det gir data-tilgang abstraksjonslag , som betyr, uavhengig av hvilken database vi bruker, vi må bruke de samme funksjonene som tilbys av den databasen for å utstede spørringer og hente data. PDO gir ikke dataabstraksjon, da den ikke omskriver SQL eller emulerer manglende funksjoner.

Fordel med PUD

PUD gir ulike måter å arbeide med objekter på og henter frem utarbeidede uttalelser som gjør arbeidet mye enklere. Det er et verktøy for databasetilgang i PHP som muliggjør enhetlig tilgang på tvers av flere databaser.

PDO tillater relativt sømløs veksling mellom forskjellige databaser og plattformer, noe som enkelt kan gjøres ved å endre tilkoblingsstrengen. Den støtter ikke databasespesifikke syntakser.

array i streng

Det er noen fordeler med PUD som følger:

arp en kommando
    Databasestøtte
    PDO-utvidelsen kan få tilgang til enhver database som er skrevet for PDO-driver. Det er flere PDO-drivere tilgjengelig som brukes til FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , og PostgreSQL databaser, blant mange flere.
    Driverne er ikke automatisk tilgjengelige i alle systemer, så vi må finne våre tilgjengelige drivere og legge til når vi trenger dem.Database kobler til
    Det er forskjellige syntakser tilgjengelig for å etablere databaseforbindelsen. Disse syntaksene avhenger av spesifikke databaser. Ved bruk av PUD må operasjoner pakkes inn i try/catch-blokker og benytte unntaksteknikken.
    Vanligvis trenger bare en enkelt tilkobling å opprette, og disse tilkoblingene lukkes ved å programmere databasen til å settes som en null.Feilhåndtering
    PUD tillater å bruke unntak for feilhåndtering. For å produsere et unntak kan PUD tvinges inn i et relevant feilmodusattributt.
    Det er tre feilmoduser, dvs. Stille (misligholde), Advarsel , og Unntak . Advarsel og unntak er mer nyttige i DRY-programmering.
      Stille- Det er en standard feilmodus.Advarsel– Det er nyttig for feilsøking.Unntak- Denne modusen tillater grasiøs feilhåndtering mens du skjuler data som en person kan bruke til å utnytte systemet ditt.
    Sett inn og oppdater
    PDO reduserer den vanlig brukte innsettings- og oppdateringsdatabaseoperasjonen til en to-trinns prosess, dvs.
    Forbered >> [Bind] >> Utfør.
    Gjennom denne metoden kan vi dra full nytte av PDOs forberedte setninger, som beskytter mot ondsinnede angrep gjennom SQL-injeksjon.
    Forberedte setninger er forhåndskompilerte SQL-setninger som kan utføres flere ganger ved å sende disse dataene til serveren. Disse dataene, som brukes i plassholderen, er automatisk beskyttet mot SQL-injeksjonsangrepet.

Fordeler med å bruke PUD

PDO er den opprinnelige databasedriveren. Det er noen fordeler ved å bruke PUD som er gitt nedenfor:

    Brukervennlighet– Den inneholder mange hjelpefunksjoner for å betjene automatiske rutineoperasjoner.Gjenbrukbarhet- Det tilbyr det enhetlige API-et for å få tilgang til flere databaser.Sikkerhet- Den bruker en forberedt setning som beskytter mot SQL-injeksjon. En forberedt setning er en forhåndskompilert SQL-setning som skiller instruksjonen til SQL-setningen fra dataene.

PUD-klasser

Det er tre PUD-klasser, som er gitt nedenfor:

    PUD– Det representerer en forbindelse mellom PHP og databasen.PDO-erklæring- Den representerer den utarbeidede erklæringen og setter etter utførelsen av erklæringen et tilhørende resultat.PDO-unntak– Det representerer feil reist av PUD.

Databaser støttet av PUD

  1. MySQL
  2. PostgreSQL
  3. Oracle
  4. Ildfugl
  5. MS SQL Server
  6. Sybase
  7. Informix
  8. IBM
  9. FreeTDS
  10. SQLite
  11. Cubrid
  12. 4D

Sammenligning mellom PUD og MySQLi

For å få tilgang til databasen ved å bruke PHP, har vi hovedsakelig to alternativer - MySQLi og PUD (PHP-dataobjekt). MySQLi er en innfødt for PHP som gir raskere ytelse, mens de fleste av de erfarne utviklerne foretrekker å jobbe med PDO da den støtter et bredt utvalg av databasedrivere. Det er noen forskjeller mellom PDO og MySQLi oppført nedenfor basert på funksjonene deres.

Egenskaper PUD MySQLi
DB-støtte 12 forskjellige drivere Kun MySQL
Forbindelse Lett Lett
API ÅPEN OOP + Prosedyre
Opptreden Fort Fort
Navngitt parameter Ja Nei
Objektkartlegging Ja Ja
Lagret prosedyre Ja Ja
Utarbeidede erklæringer på klientsiden Ja Nei
Sikkerhet Mer sikker enn MySQLi. Sikker, men ikke mer enn PUD.

Hva bør foretrekkes mellom PUD eller MySQLi?

Både PDO og MySQLi har sine egne fordeler:

  • Som vi har sett tidligere at PDO fungerer på 12 forskjellige databasesystemer, mens MySQL kun kan fungere med MySQL-database. Så hvis vi ønsker å bytte prosjektet til en annen database, gjør PDO det enkelt. I MySQLi må vi skrive om hele koden.
  • PDO og MySQLi er begge objektorienterte, men MySQLi tilbyr også prosedyre-API. Begge støtter utarbeidede uttalelser. Forberedte uttalelser er viktige for nettapplikasjonssikkerhet, siden de beskytter mot SQL-injeksjon.

Krav

Det er ikke behov for eksterne biblioteker for å bygge denne utvidelsen.

grensesnitt i java

Installasjonsprosess

Trinn 1: Last ned den nyeste XAMPP-serveren herfra https://www.apachefriends.org/download.html for forskjellige plattformer som Windows, Linux og MacOS.

Phppdo

Merk: Her vil vi diskutere installasjonsprosessen kun for Windows OS.

Steg 2: Installer XAMPP-serveren på systemet ditt ved å følge disse trinnene.

Phppdo

Trinn 3: Velg komponentene du vil installere og klikk på Neste-knappen.

Phppdo

Trinn 4: Opprett den nye mappen med navnet xampp på stedet der du vil installere XAMPP.

Phppdo

Trinn 5: Klikk på Neste her og gå videre. Installasjonen av XAMPP-serveren starter herfra.

Phppdo

Trinn 6: XAMPP er installert. Klikk på Fullfør-knappen.

Phppdo

Trinn 7: Velg ønsket språk.

Phppdo

Trinn 8: Kjør Apache-serveren og MySQL herfra (i henhold til det gitte skjermbildet).

Phppdo

Trinn 9: Åpne nå php.ini fra C:/xampp/php/php.ini (hvor du har installert din XAMPP) og opphev kommentaren til utvidelsen 'php_pdo_mysql.dll' og 'php_pdo.dll' (hvis du jobber med MySQL-database), eller 'php_pdo_oci.dll' (hvis du jobber med Oracle-database). Nå kan du begynne å jobbe med databasen. I PHP 5.1 øvre versjon er den allerede satt.

forekomst av i java

Jobber med PUD

Først må vi lage en database, så lag en database ved navn myDB herfra.

Phppdo

Databasetilkobling

En databasetilkobling er alltid nødvendig for å samhandle med databasen. Så vi trenger å kjenne identifikatoren for å få tilgang til databasen, det vil si plasseringen av databasen, databasenavn, brukernavn og passord.

Lag nå databasetilkoblingsprogrammet ved å bruke PDO i et hvilket som helst tekstredigeringsprogram som notepad eller notepad++ og lagre det ved navn coonection.php. Kjør den på XAMPP-server ved å bruke localhost/80.

aws rødforskyvning

Eksempel

 getMessage(); } ?> 

Produksjon

Kjør den på serveren ved å bruke følgende URL localhost/Xampp/pdoexample/connection.php/ eller hvor du har lagret programmet.

Phppdo

Håndtering av tilkoblingsfeil

Et PDOException-objekt vil bli kastet hvis det er noen tilkoblingsfeil. Vi kan fange unntaket hvis vi ønsker å håndtere feiltilstanden, eller vi kan også overlate det til global unntaksbehandler som kan settes opp av set_exception_handler() funksjon.

Eksempel

I dette eksemplet er dbUser(bruker-id) feil, så det vil gi et unntak, som vi kan se i utdataene.

 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?> 
Phppdo

Lukker databasetilkoblingen

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

Produksjon

Phppdo