Свързване с БД чрез 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

Установете връзка с вашата БД по описания в урока начин.