Andmebaasiühenduse loomine PDO kaudu PHP-s

Loome ühenduse andmebaasiga PDO kaudu. Alustuseks salvestame ligipääsuväärtused muutujatesse:

php<?php
  $host = 'localhost'; // hosti nimi (enamasti alati selline)
  $db = 'test';        // andmebaasi nimi
  $user = 'root';      // andmebaasi kasutajanimi
  $pass = 'root';      // andmebaasi parool
?>

Nüüd peame moodustama spetsiaalses formaadis stringi. Selles stringis peame määrama kasutatava andmebaasi tüübi (enamasti 'mysql'), hosti nime ja andmebaasi nime:

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

Seejärel loome PDO valikute massiivi, mida me kasutame tööprotsessis (ärge veel süvenege nendesse):

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

Nüüd saame luua ühenduse andmebaasiga, kasutades eelnevalt deklareeritud muutujaid:

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

Eelpool toodud kood kas loob ühenduse andmebaasiga või viskab erindi. Seetõttu on õigem panna ühenduse loomine try-catch konstruktsiooni sisse:

php<?php
  try {
    $pdo = new PDO($dsn, $user, $pass, $opt);
    echo 'Andmebaas on ühendatud';
  } catch(PDOException $e) {
    echo "Ühendus ebaõnnestus: " . $e->getMessage();
  }
?>

Täielik kood näeb välja selline:

php<?php
  $host = 'localhost';
  $db = 'test';
  $user = ''; // andmebaasi kasutajanimi
  $pass = ''; // andmebaasi parool
  $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 'Andmebaas on ühendatud';
  } catch(PDOException $e) {
    echo "Ühendus ebaõnnestus: " . $e->getMessage();
  }
?>
Задание 1

Loo ühendus oma andmebaasiga õppetükis kirjeldatud viisil.