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
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.
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.
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.
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:
PUD-klasser
Det er tre PUD-klasser, som er gitt nedenfor:
Databaser støttet av PUD
- MySQL
- PostgreSQL
- Oracle
- Ildfugl
- MS SQL Server
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Cubrid
- 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.
Merk: Her vil vi diskutere installasjonsprosessen kun for Windows OS.
Steg 2: Installer XAMPP-serveren på systemet ditt ved å følge disse trinnene.
Trinn 3: Velg komponentene du vil installere og klikk på Neste-knappen.
Trinn 4: Opprett den nye mappen med navnet xampp på stedet der du vil installere XAMPP.
Trinn 5: Klikk på Neste her og gå videre. Installasjonen av XAMPP-serveren starter herfra.
Trinn 6: XAMPP er installert. Klikk på Fullfør-knappen.
Trinn 7: Velg ønsket språk.
Trinn 8: Kjør Apache-serveren og MySQL herfra (i henhold til det gitte skjermbildet).
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.
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.
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(); } ?>
Lukker databasetilkoblingen
getMessage(); } // this command close the connection. $dbConn = null; ?>
Produksjon