Sambungan ke Pangkalan Data melalui PDO dalam PHP

Mari buat sambungan ke pangkalan data melalui PDO. Pertama, mari tulis maklumat akses ke dalam pembolehubah:

php<?php
  $host = 'localhost'; // nama hos (biasanya sentiasa begini)
  $db = 'test';        // nama pangkalan data
  $user = 'root';      // nama pengguna untuk akses pangkalan data
  $pass = 'root';      // kata laluan untuk akses pangkalan data
?>

Sekarang kita perlu membentuk rentetan dalam format khas. Dalam rentetan ini kita perlu nyatakan jenis pangkalan data yang digunakan (biasanya, 'mysql'), nama hos dan nama pangkalan data:

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

Kemudian buat tatasusunan pilihan PDO, yang akan kita gunakan dalam proses kerja (buat masa ini jangan teliti terlalu mendalam):

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

Sekarang kita boleh membuat sambungan ke pangkalan data, menggunakan pembolehubah yang diisytiharkan di atas:

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

Kod di atas sama ada akan membuat sambungan ke pangkalan data, atau melontarkan pengecualian. Oleh itu, lebih betul untuk membungkus sambungan dalam struktur try-catch:

php<?php
  try {
    $pdo = new PDO($dsn, $user, $pass, $opt);
    echo 'Pangkalan data disambungkan';
  } catch(PDOException $e) {
    echo "Sambungan gagal: " . $e->getMessage();
  }
?>

Kod penuh akan kelihatan seperti ini:

php<?php
  $host = 'localhost';
  $db = 'test';
  $user = ''; // nama pengguna untuk akses pangkalan data
  $pass = ''; // kata laluan untuk akses pangkalan data
  $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 'Pangkalan data disambungkan';
  } catch(PDOException $e) {
    echo "Sambungan gagal: " . $e->getMessage();
  }
?>
Задание 1

Buat sambungan ke pangkalan data anda dengan cara yang diterangkan dalam pelajaran ini.