logo

Introduktion til PHP PDO

PHP er et open source-generelt scriptsprog, som er meget brugt til at skabe dynamiske og interaktive websider. PHP kan få adgang til en lang række relationelle databasestyringssystemer som f.eks MYSQL, SQLite , og PostgreSQL . Det PHP 5.1 version tilbød et nyt abstraktionsbibliotek for databaseforbindelse, hvilket er PHP dataobjekter (BOB).

Hvad er PDO?

PDO henviser til PHP dataobjekt , som er en PHP-udvidelse, der definerer en let og ensartet grænseflade til at få adgang til en database i PHP. Det er et sæt PHP-udvidelser, som giver en kerne PDO-klasse og databasespecifik driver. Hver databasedriver kan afsløre databasespecifikke funktioner som en almindelig udvidelsesfunktion, der implementerer PDO-grænsefladen.

Bemærk: Vi kan ikke udføre nogen form for databasefunktion ved at bruge selve PDO-udvidelsen. For at få adgang til en databaseserver skal vi bruge en databasespecifik PDO-driver.

PDO fokuserer hovedsageligt på dataadgangsabstraktion snarere end databaseabstraktion. Det giver dataadgang abstraktionslag , hvilket betyder, at vi, uanset hvilken database vi bruger, skal bruge de samme funktioner, som den pågældende database giver til at udstede forespørgsler og hente data. PDO giver ikke dataabstraktion, da den ikke omskriver SQL eller emulerer manglende funktioner.

Fordel ved PDO

PDO giver forskellige måder at arbejde med objekter på og henter udarbejdede udsagn, der gør arbejdet meget lettere. Det er et databaseadgangsværktøj i PHP, hvorigennem vi muliggør ensartet adgang på tværs af flere databaser.

PDO tillader forholdsvis problemfri skift mellem forskellige databaser og platforme, hvilket nemt kan gøres ved at ændre forbindelsesstrengen. Det understøtter ikke databasespecifikke syntakser.

array i streng

Der er nogle fordele ved PDO som følger:

dobbelt i java
    Database support
    PDO-udvidelsen kan få adgang til enhver database, der er skrevet til PDO-driver. Der er flere PDO-drivere tilgængelige, som bruges til FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , og PostgreSQL databaser blandt mange flere.
    Driverne er ikke automatisk tilgængelige i alle systemer, så vi er nødt til at finde vores tilgængelige drivere og tilføje dem, når vi har brug for dem.Database tilslutning
    Der er forskellige syntakser til rådighed for at etablere databaseforbindelsen. Disse syntakser afhænger af specifikke databaser. Mens du bruger PDO, skal operationer pakkes ind i try/catch-blokke og bruge undtagelsesteknikken.
    Normalt skal der kun oprettes en enkelt forbindelse, og disse forbindelser lukkes ved at programmere databasen til at indstille som en null.Fejlhåndtering
    PDO tillader at bruge undtagelser til fejlhåndtering. For at producere en undtagelse kan PDO tvinges til en relevant fejltilstandsattribut.
    Der er tre fejltilstande, dvs. Stille (Standard), Advarsel , og Undtagelse . Advarsel og Undtagelse er mere nyttige i DRY-programmering.
      Stille- Det er en standard fejltilstand.Advarsel- Det er nyttigt til fejlretning.Undtagelse- Denne tilstand tillader yndefuld fejlhåndtering, mens data skjules, som en person kan bruge til at udnytte dit system.
    Indsæt og opdater
    PDO reducerer den almindeligt anvendte indsættelse og opdatering af databaseoperation til en to-trins proces, dvs.
    Forbered >> [Bind] >> Udfør.
    Gennem denne metode kan vi drage fuld fordel af PDO's forberedte sætninger, som beskytter mod ondsindede angreb gennem SQL-injektion.
    Forberedte sætninger er prækompilerede SQL-sætninger, der kan udføres flere gange ved at sende disse data til serveren. Disse data, som bruges i pladsholderen, er automatisk beskyttet mod SQL-injektionsangrebet.

Fordele ved at bruge PDO

PDO er den oprindelige databasedriver. Der er nogle fordele ved at bruge PDO, som er angivet nedenfor:

    Anvendelighed- Den indeholder mange hjælpefunktioner til at betjene automatiske rutineoperationer.Genanvendelighed- Det tilbyder den forenede API til at få adgang til flere databaser.Sikkerhed- Den bruger en forberedt erklæring, som beskytter mod SQL-injektion. En forberedt sætning er en prækompileret SQL-sætning, der adskiller instruktionen i SQL-sætningen fra dataene.

BOB-klasser

Der er tre BOB-klasser, som er angivet nedenfor:

    BOB- Det repræsenterer en forbindelse mellem PHP og databasen.PDO-erklæring- Den repræsenterer den udarbejdede erklæring og sætter efter udførelsen af ​​erklæringen et tilhørende resultat.PDO Undtagelse- Det repræsenterer fejl rejst af BOB.

Databaser understøttet af PDO

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

Sammenligning mellem PDO og MySQLi

For at få adgang til databasen ved at bruge PHP, har vi hovedsageligt to muligheder - MySQLi og BOB (PHP-dataobjekt). MySQLi er en indfødt til PHP, der giver hurtigere ydeevne, hvorimod de fleste af de erfarne udviklere foretrækker at arbejde med PDO, da det understøtter en lang række databasedrivere. Der er nogle forskelle mellem PDO og MySQLi nedenfor baseret på deres funktioner.

Funktioner BOB MySQLi
DB Support 12 forskellige drivere Kun MySQL
Forbindelse Let Let
API ÅBEN OOP + Procedure
Ydeevne Hurtig Hurtig
Navngivet parameter Ja Ingen
Objekt kortlægning Ja Ja
Lagret procedure Ja Ja
Udarbejdede erklæringer på klientsiden Ja Ingen
Sikkerhed Mere sikker end MySQLi. Sikker, men ikke mere end PDO.

Hvad skal foretrækkes mellem PDO eller MySQLi?

Både PDO og MySQLi har deres egne fordele:

  • Som vi har set tidligere, virker PDO på 12 forskellige databasesystemer, hvorimod MySQL kun kan fungere med MySQL-database. Så hvis vi ønsker at skifte vores projekt til en anden database, gør PDO det nemt. I MySQLi skal vi omskrive hele koden.
  • PDO og MySQLi er begge objektorienterede, men MySQLi tilbyder også procedure-API. Begge understøtter udarbejdede erklæringer. Forberedte erklæringer er vigtige for webapplikationssikkerhed, da de beskytter mod SQL-injektion.

Krav

Der er ikke behov for eksterne biblioteker for at bygge denne udvidelse.

grænseflade i java

Installationsproces

Trin 1: Download den seneste XAMPP-server herfra https://www.apachefriends.org/download.html til forskellige platforme som Windows, Linux og MacOS.

Phppdo

Bemærk: Her vil vi kun diskutere installationsprocessen for Windows OS.

Trin 2: Installer XAMPP-serveren på dit system ved at følge disse trin.

Phppdo

Trin 3: Vælg de komponenter, du vil installere, og klik på knappen Næste.

Phppdo

Trin 4: Opret den nye mappe med navnet xampp på det sted, hvor du vil installere XAMPP.

Phppdo

Trin 5: Klik på Næste her og gå videre. Installation af XAMPP-serveren starter herfra.

Phppdo

Trin 6: XAMPP er installeret korrekt. Klik på knappen Afslut.

Phppdo

Trin 7: Vælg det foretrukne sprog.

Phppdo

Trin 8: Kør Apache-serveren og MySQL herfra (i henhold til det givne skærmbillede).

Phppdo

Trin 9: Åbn nu php.ini fra C:/xampp/php/php.ini (hvor du har installeret din XAMPP) og fjern kommentarer til udvidelsen 'php_pdo_mysql.dll' og 'php_pdo.dll' (hvis du arbejder med MySQL-database), eller 'php_pdo_oci.dll' (hvis du arbejder med Oracle-database). Begynd nu at arbejde med databasen. I PHP 5.1 øvre version er den allerede indstillet.

java flygtigt søgeord

Arbejder med PDO

Først skal vi oprette en database, så opret en database ved navn myDB herfra.

Phppdo

Database forbindelse

En databaseforbindelse er altid påkrævet for at interagere med databasen. Så vi skal kende identifikatoren for at få adgang til databasen, dvs. databasens placering, databasenavn, brugernavn og adgangskode.

Opret nu databaseforbindelsesprogrammet ved hjælp af PDO i en hvilken som helst teksteditor, såsom notesblok eller notesblok++, og gem det ved navn coonection.php. Kør det på XAMPP-server ved hjælp af localhost/80.

boto3

Eksempel

 getMessage(); } ?> 

Produktion

Kør det på serveren ved hjælp af følgende URL localhost/Xampp/pdoexample/connection.php/ eller hvor du har gemt dit program.

Phppdo

Håndtering af forbindelsesfejl

Et PDOException-objekt vil blive kastet, hvis der er en forbindelsesfejl. Vi kan fange undtagelsen, hvis vi ønsker at håndtere fejltilstanden, eller vi kan også overlade den til den globale undtagelsesbehandler, som kan konfigureres af set_exception_handler() fungere.

Eksempel

I dette eksempel er dbUser(bruger-id) forkert, så det vil give en undtagelse, som vi kan se i outputtet.

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

Lukning af databaseforbindelsen

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

Produktion

Phppdo