logo

Introduktion till PHP PDO

PHP är ett allmänt skriptspråk med öppen källkod, som används i stor utsträckning för att skapa dynamiska och interaktiva webbsidor. PHP kan komma åt ett stort utbud av relationsdatabashanteringssystem som t.ex MYSQL, SQLite , och PostgreSQL . De PHP 5.1 versionen erbjöd ett nytt abstraktionsbibliotek för databasanslutningar, vilket är PHP-dataobjekt (SUB).

Vad är PDO?

PDO avser PHP-dataobjekt , som är ett PHP-tillägg som definierar ett lätt och konsekvent gränssnitt för åtkomst till en databas i PHP. Det är en uppsättning PHP-tillägg som tillhandahåller en grundläggande PDO-klass och databasspecifik drivrutin. Varje databasdrivrutin kan exponera databasspecifika funktioner som en vanlig tilläggsfunktion som implementerar PDO-gränssnittet.

Obs: Vi kan inte utföra någon typ av databasfunktion genom att använda själva PDO-tillägget. För att komma åt en databasserver måste vi använda en databasspecifik PDO-drivrutin.

PDO fokuserar främst på dataåtkomstabstraktion snarare än databasabstraktion. Det ger dataåtkomstabstraktionslager , vilket innebär att vi, oavsett vilken databas vi använder, måste använda samma funktioner som den databasen tillhandahåller för att skicka frågor och hämta data. PDO tillhandahåller inte dataabstraktion, eftersom den inte skriver om SQL eller emulerar saknade funktioner.

Fördel med PDO

PDO ger olika sätt att arbeta med objekt och hämtar färdiga utlåtanden som underlättar arbetet mycket. Det är ett databasåtkomstverktyg i PHP genom vilket vi möjliggör enhetlig åtkomst över flera databaser.

PDO tillåter jämförelsevis sömlös växling mellan olika databaser och plattformar, vilket enkelt kan göras genom att ändra anslutningssträngen. Det stöder inte databasspecifika syntaxer.

Det finns några fördelar med PDO enligt följande:

    Databasstöd
    PDO-tillägget kan komma åt vilken databas som helst som är skriven för PDO-drivrutinen. Det finns flera PDO-drivrutiner tillgängliga som används för FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , och PostgreSQL databaser, bland många fler.
    Drivrutinerna är inte tillgängliga i alla system automatiskt, så vi måste hitta våra tillgängliga drivrutiner och lägga till sådana när vi behöver dem.Databasansluter
    Det finns olika syntaxer tillgängliga för att upprätta databasanslutningen. Dessa syntaxer beror på specifika databaser. När du använder PDO måste operationer lindas in i try/catch-block och använda undantagstekniken.
    Vanligtvis behöver bara en enda anslutning skapas, och dessa anslutningar stängs genom att programmera databasen så att den ställs in som en noll.Felhantering
    PDO tillåter användning av undantag för felhantering. För att skapa ett undantag kan PDO tvingas in i ett relevant fellägesattribut.
    Det finns tre fellägen, dvs. Tyst (standard), Varning , och Undantag . Varning och undantag är mer användbara i DRY-programmering.
      Tyst- Det är ett standardfelläge.Varning– Det är användbart för felsökning.Undantag- Det här läget tillåter graciös felhantering samtidigt som data döljs som en person kan använda för att utnyttja ditt system.
    Infoga och uppdatera
    PDO reducerar den vanligen använda infogningen och uppdateringen av databasoperationen till en tvåstegsprocess, dvs.
    Förbered >> [Bind] >> Utför.
    Genom denna metod kan vi dra full nytta av PDO:s förberedda uttalanden, som skyddar mot skadliga attacker genom SQL-injektion.
    Förberedda satser är förkompilerade SQL-satser som kan köras flera gånger genom att skicka dessa data till servern. Dessa data, som används inom platshållaren, skyddas automatiskt från SQL-injektionsattacken.

Fördelar med att använda SUB

PDO är den ursprungliga databasdrivrutinen. Det finns några fördelar med att använda PDO som anges nedan:

    Användbarhet– Den innehåller många hjälpfunktioner för att driva automatiska rutinoperationer.Återanvändbarhet- Det erbjuder ett enhetligt API för åtkomst till flera databaser.säkerhet- Den använder en förberedd sats som skyddar från SQL-injektion. En preparerad sats är en förkompilerad SQL-sats som skiljer instruktionen för SQL-satsen från data.

PDO-klasser

Det finns tre PDO-klasser, som anges nedan:

    SUB- Det representerar en koppling mellan PHP och databasen.PDO Statement- Det representerar det förberedda uttalandet och efter utförandet av uttalandet sätter det ett associerat resultat.PDO Undantag- Det representerar fel som tagits upp av SUB.

Databaser som stöds av PDO

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

Jämförelse mellan PDO och MySQLi

För att komma åt databasen genom att använda PHP har vi huvudsakligen två alternativ - MySQLi och SUB (PHP-dataobjekt). MySQLi är inbyggt i PHP som ger snabbare prestanda, medan de flesta av de erfarna utvecklarna föredrar att arbeta med PDO eftersom det stöder en mängd olika databasdrivrutiner. Det finns några skillnader mellan PDO och MySQLi nedan baserat på deras funktioner.

Funktioner SUB MySQLi
DB Support 12 olika förare Endast MySQL
Förbindelse Lätt Lätt
API ÖPPEN OOP + Procedur
Prestanda Snabb Snabb
Namngiven parameter Ja Nej
Objektkartläggning Ja Ja
Lagrad procedur Ja Ja
Förberedda uttalanden på klientsidan Ja Nej
säkerhet Säkrare än MySQLi. Säker men inte mer än PDO.

Vilket är att föredra mellan PDO eller MySQLi?

Både PDO och MySQLi har sina egna fördelar:

  • Som vi har sett tidigare fungerar PDO på 12 olika databassystem, medan MySQL endast kan fungera med MySQL-databas. Så om vi vill byta vårt projekt till en annan databas, gör PDO det enkelt. I MySQLi måste vi skriva om hela koden.
  • PDO och MySQLi är båda objektorienterade, men MySQLi erbjuder också procedur-API. Båda stöder förberedda uttalanden. Förberedda uttalanden är viktiga för webbapplikationssäkerhet, eftersom de skyddar mot SQL-injektion.

Krav

Det finns inget behov av externa bibliotek för att bygga denna tillägg.

Installationsprocess

Steg 1: Ladda ner den senaste XAMPP-servern härifrån https://www.apachefriends.org/download.html för olika plattformar som Windows, Linux och MacOS.

Phppdo

Obs: Här kommer vi att diskutera installationsprocessen endast för Windows OS.

Steg 2: Installera XAMPP-servern på ditt system genom att följa dessa steg.

Phppdo

Steg 3: Välj de komponenter som du vill installera och klicka på knappen Nästa.

Phppdo

Steg 4: Skapa den nya mappen med namnet xampp på den plats där du vill installera XAMPP.

Phppdo

Steg 5: Klicka på Nästa här och gå vidare. Installationen av XAMPP-servern startar härifrån.

Phppdo

Steg 6: XAMPP har installerats framgångsrikt. Klicka på knappen Slutför.

Phppdo

Steg 7: Välj önskat språk.

Phppdo

Steg 8: Kör Apache-servern och MySQL härifrån (enligt den givna skärmdumpen).

Phppdo

Steg 9: Öppna nu php.ini från C:/xampp/php/php.ini (där du har installerat din XAMPP) och avkommentera tillägget 'php_pdo_mysql.dll' och 'php_pdo.dll' (om du arbetar med MySQL-databas), eller 'php_pdo_oci.dll' (om du arbetar med Oracle-databas). Börja nu arbeta med databasen. I den övre versionen av PHP 5.1 är den redan inställd.

Arbetar med PDO

Först måste vi skapa en databas, så skapa en databas med namnet myDB härifrån.

Phppdo

Databasanslutning

En databasanslutning krävs alltid för att interagera med databasen. Så vi behöver känna till identifieraren för att komma åt databasen, det vill säga databasens plats, databasnamn, användarnamn och lösenord.

Skapa nu databasanslutningsprogrammet med PDO i valfri textredigerare som anteckningsblock eller notepad++ och spara det med namnet coonection.php. Kör den på XAMPP-servern med localhost/80.

Exempel

 getMessage(); } ?> 

Produktion

Kör den på servern med följande URL localhost/Xampp/pdoexample/connection.php/ eller var du har sparat ditt program.

Phppdo

Hantering av anslutningsfel

Ett PDOException-objekt kommer att kastas om det finns något anslutningsfel. Vi kan fånga undantaget om vi vill hantera feltillståndet, eller så kan vi också lämna det till den globala undantagshanteraren som kan ställas in av set_exception_handler() fungera.

Exempel

I det här exemplet är dbUser(användar-id) fel, så det kommer att skapa ett undantag, som vi kan se i utdata.

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

Stänger databasanslutningen

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

Produktion

vad min skärmstorlek
Phppdo