PHP PDO -opplæring

PHP PDO -opplæring
Databasen er en veldig viktig del av alle webapplikasjoner for å lagre og hente dataene fra applikasjonen. Databasen kan nås på flere måter i PHP. PDO og MySQLI er PHP -utvidelser for å få tilgang til databasene ved hjelp av PHP. PUD -en (PHP Data Objects) introduseres først i PHP versjon 5.1 For å lage forbindelsen med databasen for å utføre de forskjellige typene databaseoppgaver. Det gir et lett grensesnitt for å få tilgang til databasen gjennom et PHP -skript. Dataabstraksjonen til databasen er ikke gitt av PDO, men dataene kan nås fra flere databaser lettere ved hjelp av PDO. De fleste av de populære databasene støttes av PDO som MySQL, SQLite, Oracle, MS SQL Server, PostgreSQL, etc. Fordelene ved å bruke PDO, forskjellen mellom PDO og MySQLI, og måten å koble til og få tilgang til MySQL -databasen ved hjelp av PDO er beskrevet i denne opplæringen.

Fordelene med PDO

Noen fordeler ved å bruke PDO for å få tilgang til databasene er nevnt i følgende:

  • Mange hjelperfunksjoner finnes i PDO for å automatisere de forskjellige typene utviklingsoppgaver.
  • Det gir sikkerhet fra hackere ved hjelp av forberedte utsagn mens du får tilgang til dataene fra databasen.
  • Den inneholder bedre feilhåndteringsfunksjoner for å håndtere de forskjellige feilene mer effektivt.
  • Flere databaser kan nås ved hjelp av Unified API of PDO.

Forskjeller mellom PDO og MySqli

Pdo Mysqli
Det fungerer på en objektorientert måte. Det kan fungere på både objektorientert og prosessuell måte.
Den støtter mange databasedrivere. Det støtter bare mysql.
Den støtter den utarbeidede uttalelsen på klientsiden. Den støtter ikke den utarbeidede uttalelsen på klientsiden.
Det er sikrere enn mysqli. Det er mindre sikkert enn PDO.
Den støtter de navngitte parametrene. Den støtter ikke de navngitte parametrene.

Opprett MySQL -databasen

Kjør følgende SQL -kommando for å opprette en database som heter “test”For å sjekke bruken av PDO for å utføre de forskjellige typene databaseoppgaver:

Opprette databasetest;

Lag et bord

Kjør følgende SQL -kommando for å opprette en tabell som heter “bøker" inne i "test”Database:

Lag bordbøker (
id int (255) ikke null primær nøkkel auto_increment,
tittelen varchar (150) ikke null,
Forfatteren Varchar (150) Ikke null
) Motor = innodb;

Lag en databasetilkobling ved hjelp av PDO

Opprett en PHP -fil med følgende skript som gjør forbindelsen med "test”Database ved hjelp av PDO:

// Initialiser tilkoblingsvariabler
$ hostname = "localhost";
$ database = "test";
$ bruker = "root";
$ passord = "12345";
prøve

// Opprett databasetilkobling ved hjelp av PDO
$ db_connection = new PDO ("mysql: host = $ hostname; dbname = $ database", $ bruker, $ passord);

fangst (unntak $ e) $ setning-> utfør ([
// Skriv ut feilmelding
ekko "Kan ikke koble til databasen."" . $ e-> getMessage ();

?>

Sett inn en rad i en tabell

Lag en PHP -fil med følgende skript som setter inn en post i bøker Tabell ved hjelp av en PDO -tilkobling. Databasetilkoblingsfilen er inkludert i begynnelsen av skriptet ved å bruke funksjonen Include_once (). En utarbeidet uttalelse for innsatsforespørsel opprettes for å sette inn en ny post i tabellen.

// Opprett en databaseforbindelse
inkluderer_once 'pdo_connect.php ';
// Angi verdier for å sette inn en post til Books -tabellen
$ title = 'The Joy ved PHP -programmering: en nybegynnerguide';
$ forfatter = 'Alan Forbes';
// Angi innsettingsspørsmålet
$ spørring = 'sett inn i bøker (id, tittel, forfatter) verdier (: id,: tittel,: forfatter)';
// Lag utarbeidet uttalelse
$ uttalelse = $ db_connection-> forberedelse ($ spørring);
// utfør innsettingsspørsmålet
$ uttalelse-> Utfør ([
': id' => null,
': tittel' => $ tittel,
': forfatter' => $ forfatter
]);
Echo 'One Record er satt inn vellykket';
?>

Produksjon:
Følgende utgang vises etter å ha utført det forrige skriptet hvis en ny post er satt inn vellykket:

Velg en data fra en tabell

Opprett en PHP -fil med følgende skript som velger alle poster av bøker Tabell ved hjelp av en PDO -tilkobling. Databasetilkoblingsfilen er inkludert i begynnelsen av skriptet ved å bruke funksjonen Include_once (). En utarbeidet uttalelse for en valgt spørring opprettes for å lese alle poster fra tabellen.

// Opprett en databaseforbindelse
inkluderer_once 'pdo_connect.php ';
// Angi spørring for å lese alle poster
$ spørring = 'velg * fra bøker';
// Lag utarbeidet uttalelse
$ uttalelse = $ db_connection-> spørring ($ spørring);
// Les alle poster fra Books -tabellen
$ bøker = $ uttalelse-> fetchall (pdo :: fetch_assoc);
if ($ bøker)
// iterere og skrive ut hver post fra tabellen
foreach ($ bøker som $ bok)
ekko "Boknavn: "".$ bok ['tittel'] . ""
";
ekko "Forfatternavn: "".$ bok ['forfatter'] . ""
";

Produksjon:
Følgende utgang vises etter å ha utført det forrige skriptet hvis tabellen inneholder en post:

Oppdater en data fra tabellen

Opprett en PHP -fil med følgende skript som oppdaterer en oversikt over bøker Tabell ved hjelp av en PDO -tilkobling. Databasetilkoblingsfilen er inkludert i begynnelsen av skriptet ved å bruke funksjonen Include_once (). En utarbeidet uttalelse for en oppdateringssøk opprettes for å oppdatere en oversikt over bøkertabellen som inneholder ID -verdien på 1.

// Opprett en databaseforbindelse
inkluderer_once 'pdo_connect.php ';
// Angi nye verdier for å oppdatere
$ bok = [
'id' => 1,
'tittel' => 'php & mysql nybegynner til ninja',
'Forfatter' => 'Kevin Yank'
];
// angi oppdateringsspørsmålet
$ spørring = "Oppdater bøker
Sett tittel =: Tittel, forfatter =: Forfatter
Hvor id =: id ";
// Lag utarbeidet uttalelse
$ uttalelse = $ db_connection-> forberedelse ($ spørring);
// Bind params for den forberedte uttalelsen
$ uttalelse-> bindparam (': id', $ bok ['id'], pdo :: param_int);
$ uttalelse-> bindparam (': tittel', $ bok ['tittel']);
$ uttalelse-> bindparam (': forfatter', $ bok ['forfatter']);
// utfør oppdateringsspørsmålet
if ($ uttalelse-> utfør ())
ekko 'Bokinformasjonen er oppdatert.';

Produksjon:
Følgende utgang vises etter å ha utført det forrige skriptet hvis posten til tabellen blir oppdatert vellykket:

Slett en rad fra tabellen

Lag en PHP -fil med følgende skript som sletter en oversikt over bøker Tabell ved hjelp av en PDO -tilkobling. Databasetilkoblingsfilen er inkludert i begynnelsen av skriptet ved å bruke funksjonen Include_once (). En utarbeidet uttalelse for Delete -spørringen opprettes for å slette en oversikt over Books -tabellen som inneholder ID -verdien på 1.

// Opprett en databaseforbindelse
inkluderer_once 'pdo_connect.php ';
// Angi spørring for sletting
$ spørring = 'Slett fra bøker der id =: id';
$ id = 1;
// sett utarbeide uttalelse
$ uttalelse = $ db_connection-> forberedelse ($ spørring);
$ uttalelse-> bindparam (': id', $ id, pdo :: param_int);
// utfør slettespørsmålet
if ($ uttalelse-> utfør ())
Echo 'One Record er blitt slettet.';

Produksjon:
Følgende utgang vises etter å ha utført det forrige skriptet hvis posten til tabellen blir slettet vellykket:

Konklusjon

Ulike funksjoner i PDO og måten å bruke PDO for å lage databaseforbindelser og implementere CRUD -operasjonen vises i denne opplæringen ved å opprette MySQL -databasen med en tabell.