PHP හි PDO හරහා දත්ත සංචිත සම්බන්ධකරණය

අපි 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

ඔබගේ දත්ත සංචිතය සමඟ සම්බන්ධතාවයක් පාඩමේ විස්තර කර ඇති ආකාරයට ස්ථාපිත කරන්න.