PDO-и PHP тавассут ба пойгоҳи додаҳо пайваст шудан

Биёед тавассути PDO ба пойгоҳи додаҳо пайваст шавем. Аввалан дастрасиҳоро дар тағирёбандаҳо сабт мекунем:

php<?php
  $host = 'localhost'; // номи хоҳост (муқарраран ҳамеша чунин аст)
  $db = 'test';        // номи пойгоҳи додаҳо
  $user = 'root';      // номи корбарӣ барои дохилшавӣ ба пойгоҳи додаҳо
  $pass = 'root';      // рамз барои дохилшавӣ ба пойгоҳи додаҳо
?>

Акнун ба мо лозим аст, ки сатрро дар формати махсус тартиб диҳем. Дар ин сатр мо бояд навъи пойгоҳи додаҳои истифодашаванда (муқарраран 'mysql'), номи хоҳост ва номи пойгоҳи додаҳоро муайян кунем:

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

Пас массивро аз ихтиёроти PDO эҷод мекунем, ки мо дар раванди кор истифода хоҳем кард (ҳоло ба онҳо ворид нашавед):

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

Акнун мо метавонем ба пойгоҳи додаҳо пайваст шавем, бо истифода аз тағирёбандаҳои дар боло эълоншуда:

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

Рамзи дар боло овардашуда ё ба пойгоҳи додаҳо пайваст мешавад, ё истисно мепартояд. Пас дурусттар аст, ки пайвастиро дар сохтори try-catch печандем:

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

Рамзи пурра чунин хоҳад буд:

php<?php
  $host = 'localhost';
  $db = 'test';
  $user = ''; // номи корбарӣ барои дохилшавӣ ба пойгоҳи додаҳо
  $pass = ''; // рамз барои дохилшавӣ ба пойгоҳи додаҳо
  $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

Ба пойгоҳи додаҳои худ тавассути усули дар дарс тавзеҳдодашуда пайваст шавед.