logo

Inleiding tot PHP PDO

PHP is een open-source scripttaal voor algemene doeleinden, die veel wordt gebruikt voor het maken van dynamische en interactieve webpagina's. PHP heeft toegang tot een groot aantal relationele databasebeheersystemen, zoals MYSQL, SQLite , En PostgreSQL . De PHP 5.1 versie bood een nieuwe databaseverbindingsabstractiebibliotheek, dat wil zeggen PHP-gegevensobjecten (BOB).

Wat is BOB?

PDO verwijst naar PHP-gegevensobject , een PHP-extensie die een lichtgewicht en consistente interface definieert voor toegang tot een database in PHP. Het is een set PHP-extensies die een kern-PDO-klasse en een databasespecifieke driver bieden. Elk databasestuurprogramma kan databasespecifieke functies beschikbaar stellen als een reguliere uitbreidingsfunctie die de PDO-interface implementeert.

Opmerking: we kunnen geen enkele databasefunctie uitvoeren door de PDO-extensie zelf te gebruiken. Om toegang te krijgen tot een databaseserver moeten we een databasespecifiek PDO-stuurprogramma gebruiken.

PDO richt zich vooral op de abstractie van gegevenstoegang in plaats van op databaseabstractie. Het zorgt voor abstractielaag voor gegevenstoegang , wat betekent dat we, ongeacht welke database we gebruiken, dezelfde functies van die database moeten gebruiken om zoekopdrachten uit te voeren en gegevens op te halen. PDO biedt geen gegevensabstractie, omdat het de SQL niet herschrijft of ontbrekende functies emuleert.

Voordeel van BOB

PDO biedt verschillende manieren om met objecten te werken en haalt voorbereide instructies op die het werk veel gemakkelijker maken. Het is een databasetoegangstool in PHP waarmee we uniforme toegang tot meerdere databases mogelijk maken.

PDO maakt relatief naadloos schakelen tussen verschillende databases en platforms mogelijk, wat eenvoudig kan worden gedaan door de verbindingsreeks te wijzigen. Het ondersteunt geen databasespecifieke syntaxis.

Er zijn enkele voordelen van BOB:

    Database-ondersteuning
    De PDO-extensie heeft toegang tot elke database die is geschreven voor het PDO-stuurprogramma. Er zijn verschillende PDO-drivers beschikbaar die hiervoor worden gebruikt FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , En PostgreSQL databases, en nog veel meer.
    De stuurprogramma's zijn niet automatisch in elk systeem beschikbaar, dus we moeten onze beschikbare stuurprogramma's vinden en deze toevoegen wanneer we ze nodig hebben.Database verbinden
    Er zijn verschillende syntaxis beschikbaar om de databaseverbinding tot stand te brengen. Deze syntaxis is afhankelijk van specifieke databases. Bij het gebruik van PDO moeten bewerkingen worden verpakt in try/catch-blokken en moet gebruik worden gemaakt van de uitzonderingstechniek.
    Normaal gesproken hoeft er slechts één enkele verbinding tot stand te worden gebracht, en deze verbindingen worden gesloten door de database zo te programmeren dat deze als nul wordt ingesteld.Foutafhandeling
    PDO maakt het mogelijk uitzonderingen te gebruiken voor foutafhandeling. Om een ​​uitzondering te produceren, kan PDO in een relevant foutmodusattribuut worden gedwongen.
    Er zijn drie foutmodi, d.w.z. Stil (standaard), Waarschuwing , En Uitzondering . Waarschuwing en uitzondering zijn nuttiger bij DRY-programmering.
      Stil- Het is een standaardfoutmodus.Waarschuwing- Het is handig voor foutopsporing.Uitzondering- Deze modus maakt een correcte foutafhandeling mogelijk terwijl gegevens worden verborgen die iemand zou kunnen gebruiken om uw systeem te misbruiken.
    Invoegen en bijwerken
    PDO reduceert de veelgebruikte bewerking van het invoegen en bijwerken van de database tot een proces van twee stappen, d.w.z.
    Voorbereiden >> [Binden] >> Uitvoeren.
    Via deze methode kunnen we optimaal profiteren van de door PDO voorbereide instructies, die bescherming bieden tegen kwaadaardige aanvallen via SQL-injectie.
    Voorbereide instructies zijn vooraf samengestelde SQL-instructies die meerdere keren kunnen worden uitgevoerd door deze gegevens naar de server te verzenden. Deze gegevens, die binnen de tijdelijke aanduiding worden gebruikt, worden automatisch beschermd tegen de SQL-injectieaanval.

Voordelen van het gebruik van BOB

PDO is het native databasestuurprogramma. Er zijn enkele voordelen van het gebruik van BOB die hieronder worden gegeven:

    Bruikbaarheid- Het bevat veel hulpfuncties om automatische routinebewerkingen uit te voeren.Herbruikbaarheid- Het biedt de uniforme API voor toegang tot meerdere databases.Beveiliging- Het maakt gebruik van een voorbereide verklaring die beschermt tegen SQL-injectie. Een voorbereide instructie is een vooraf gecompileerde SQL-instructie die de instructie van de SQL-instructie scheidt van de gegevens.

BOB-klassen

Er zijn drie BOB-klassen, die hieronder worden weergegeven:

    BOB- Het vertegenwoordigt een verbinding tussen PHP en de database.BOB-verklaring- Het vertegenwoordigt de voorbereide verklaring en stelt na de uitvoering van de verklaring een bijbehorend resultaat in.PDO-uitzondering- Het vertegenwoordigt fouten die door de BOB zijn gemeld.

Databases ondersteund door BOB

  1. MySQL
  2. PostgreSQL
  3. Orakel
  4. Vuurvogel
  5. MS SQL-server
  6. Sybase
  7. Informix
  8. IBM
  9. GratisTDS
  10. SQLiet
  11. Cubrid
  12. 4D

Vergelijking tussen BOB en MySQLi

Om toegang te krijgen tot de database met behulp van PHP, hebben we hoofdzakelijk twee opties: MySQLi En BOB (PHP-gegevensobject). MySQLi is native voor PHP en biedt snellere prestaties, terwijl de meeste ervaren ontwikkelaars liever met PDO werken omdat het een grote verscheidenheid aan databasestuurprogramma's ondersteunt. Er zijn enkele verschillen tussen PDO en MySQLi die hieronder worden vermeld op basis van hun kenmerken.

Functies BOB MySQLi
DB-ondersteuning 12 verschillende chauffeurs Alleen MySQL
Verbinding Eenvoudig Eenvoudig
API OPEN OOP + Procedure
Prestatie Snel Snel
Genoemde parameter Ja Nee
Objecttoewijzing Ja Ja
Opgeslagen procedure Ja Ja
Opgestelde verklaringen aan de klantzijde Ja Nee
Beveiliging Veiliger dan MySQLi. Veilig maar niet meer dan BOB.

Welke verdient de voorkeur tussen PDO of MySQLi?

Zowel PDO als MySQLi hebben hun eigen voordelen:

  • Zoals we eerder hebben gezien, werkt PDO op 12 verschillende databasesystemen, terwijl MySQL alleen met de MySQL-database kan werken. Dus als we ons project naar een andere database willen overzetten, maakt PDO het gemakkelijk. In MySQLi moeten we de volledige code herschrijven.
  • PDO en MySQLi zijn beide objectgeoriënteerd, maar MySQLi biedt ook procedurele API. Beide ondersteunen Opgestelde Verklaringen. Opgestelde verklaringen zijn belangrijk voor de beveiliging van webapplicaties, omdat ze beschermen tegen SQL-injectie.

Vereiste

Er zijn geen externe bibliotheken nodig om deze extensie te bouwen.

Installatieproces

Stap 1: Download hier de nieuwste XAMPP-server https://www.apachefriends.org/download.html voor verschillende platforms zoals Windows, Linux en MacOS.

Phppdo

Opmerking: hier bespreken we alleen het installatieproces voor Windows OS.

Stap 2: Installeer de XAMPP-server op uw systeem door deze stappen te volgen.

Phppdo

Stap 3: Selecteer de componenten die u wilt installeren en klik op de knop Volgende.

Phppdo

Stap 4: Maak de nieuwe map met de naam xampp op de locatie waar u XAMPP wilt installeren.

Phppdo

Stap 5: Klik hier op Volgende en ga verder. De installatie van de XAMPP-server begint vanaf hier.

Phppdo

Stap 6: XAMPP is succesvol geïnstalleerd. Klik op de knop Voltooien.

Phppdo

Stap 7: Selecteer de gewenste taal.

Phppdo

Stap 8: Voer vanaf hier de Apache-server en MySQL uit (volgens de gegeven schermafbeelding).

Phppdo

Stap 9: Open nu php.ini vanuit C:/xampp/php/php.ini (waar u uw XAMPP hebt geïnstalleerd) en verwijder de opmerkingen over de extensie 'php_pdo_mysql.dll' En 'php_pdo.dll' (als u met een MySQL-database werkt), of 'php_pdo_oci.dll' (als u met een Oracle-database werkt). Ga nu aan de slag met de database. In de hogere versie van PHP 5.1 is dit al ingesteld.

Werken met BOB

Eerst moeten we een database maken, dus maak vanaf hier een database met de naam myDB.

Phppdo

Databaseverbinding

Voor interactie met de database is altijd een databaseverbinding vereist. We moeten dus de identificatie kennen om toegang te krijgen tot de database, dat wil zeggen de locatie van de database, de databasenaam, de gebruikersnaam en het wachtwoord.

Maak nu het databaseverbindingsprogramma aan met behulp van PDO in een teksteditor zoals Kladblok of Kladblok++ en sla het op onder de naam coonection.php. Voer het uit op de XAMPP-server met localhost/80.

Voorbeeld

 getMessage(); } ?> 

Uitvoer

touwtje eraan

Voer het uit op de server met behulp van de volgende URL localhost/Xampp/pdoexample/connection.php/ of waar u uw programma heeft opgeslagen.

Phppdo

Verbindingsfout afhandelen

Er wordt een PDOException-object gegenereerd als er een verbindingsfout optreedt. We kunnen de uitzondering opvangen als we de foutconditie willen afhandelen, of we kunnen dit ook overlaten aan de globale uitzonderingshandler die kan worden ingesteld door set_exception_handler() functie.

Voorbeeld

In dit voorbeeld is dbUser(user-id) verkeerd, dus er wordt een uitzondering gegenereerd, zoals we in de uitvoer kunnen zien.

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

De databaseverbinding sluiten

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

Uitvoer

Phppdo