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.
Det er noen fordeler med PUD som følger:
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.
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.
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.
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