การเชื่อมต่อกับฐานข้อมูลผ่าน 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);
?>

โค้ดด้านบนจะทำการเชื่อมต่อ กับฐานข้อมูลสำเร็จ หรือจะปล่อยข้อยกเว้น (exception) ออกมา ดังนั้นจึงเหมาะสมกว่าที่จะใส่การเชื่อมต่อ ลงในโครงสร้าง try-catch:

php<?php
  try {
    $pdo = new PDO($dsn, $user, $pass, $opt);
    echo 'เชื่อมต่อฐานข้อมูลสำเร็จ';
  } catch(PDOException $e) {
    echo "การเชื่อมต่อล้มเหลว: " . $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 'เชื่อมต่อฐานข้อมูลสำเร็จ';
  } catch(PDOException $e) {
    echo "การเชื่อมต่อล้มเหลว: " . $e->getMessage();
  }
?>
Задание 1

ให้ทำการเชื่อมต่อกับฐานข้อมูลของคุณ ด้วยวิธีที่อธิบายในบทเรียน นี้