Savienojums ar datu bāzi caur PDO PHP

Izveidosim savienojumu ar datu bāzi caur PDO. Vispirms ierakstīsim piekļuves datus mainīgajos:

php<?php
  $host = 'localhost'; // resursdatora nosaukums (parasti tas nemainās)
  $db = 'test';        // datu bāzes nosaukums
  $user = 'root';      // lietotājvārds datu bāzes pieslēgšanai
  $pass = 'root';      // parole datu bāzes pieslēgšanai
?>

Tagad mums ir jāveido īpašā formātā formatēts virkne. Šajā virknē mums jānorāda izmantotās datu bāzes veids (parasti 'mysql'), resursdatora nosaukums un datu bāzes nosaukums:

php<?php
  $dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>

Pēc tam izveidojam PDO opciju masīvu, ko izmantosim darba procesā (pagaidām tajos neiedziļinieties):

php<?php
  $opt = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
  ];
?>

Tagad mēs varam izveidot savienojumu ar datu bāzi, izmantojot iepriekš deklarētos mainīgos:

php<?php
  $pdo = new PDO($dsn, $user, $pass, $opt);
?>

Iepriekš minētais kods vai nu izveidos savienojumu ar datu bāzi, vai izmestīs izņēmumu. Tāpēc pareizāk ir ietvert savienojuma izveidi try-catch konstrukcijā:

php<?php
  try {
    $pdo = new PDO($dsn, $user, $pass, $opt);
    echo 'DB is connected';
  } catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
  }
?>

Pilns kods izskatīsies šādi:

php<?php
  $host = 'localhost';
  $db = 'test';
  $user = ''; // lietotājvārds datu bāzes pieslēgšanai
  $pass = ''; // parole datu bāzes pieslēgšanai
  $charset = 'utf8';
  
  $dsn = "mysql:host=$host; dbname=$db; charset=$charset";
  
  $opt = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
  ];
  
  try {
    $pdo = new PDO($dsn, $user, $pass, $opt);
    echo 'DB is connected';
  } catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
  }
?>
Задание 1

Izveidojiet savienojumu ar savu datu bāzi nodarbībā aprakstītajā veidā.