การเชื่อมต่อกับฐานข้อมูลผ่าน PDO ใน PHP
มาทำการเชื่อมต่อกับฐานข้อมูลผ่าน PDO กัน เริ่มต้นด้วยการบันทึกข้อมูลการเข้าถึงลงในตัวแปร:
<?php
$host = 'localhost'; // ชื่อโฮสต์ (มักจะเป็นแบบนี้เสมอ)
$db = 'test'; // ชื่อฐานข้อมูล
$user = 'root'; // ชื่อผู้ใช้สำหรับเข้าสู่ฐานข้อมูล
$pass = 'root'; // รหัสผ่านสำหรับเข้าสู่ฐานข้อมูล
?>
ตอนนี้เราต้องสร้างสตริง
ในรูปแบบพิเศษ ในสตริงนี้
เราต้องระบุ ประเภทของฐานข้อมูลที่ใช้
(โดยทั่วไปคือ 'mysql'),
ชื่อโฮสต์ และชื่อฐานข้อมูล:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
จากนั้นสร้างอาร์เรย์ของตัวเลือก PDO, ซึ่งเราจะใช้ใน ระหว่างการทำงาน (ยังไม่ต้องลงลึกถึงรายละเอียดตอนนี้):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
ตอนนี้เราสามารถทำการเชื่อมต่อ กับฐานข้อมูลได้ โดยใช้ตัวแปร ที่ประกาศไว้ข้างต้น:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
โค้ดด้านบนจะทำการเชื่อมต่อ
กับฐานข้อมูลสำเร็จ หรือจะปล่อยข้อยกเว้น (exception)
ออกมา
ดังนั้นจึงเหมาะสมกว่าที่จะใส่การเชื่อมต่อ
ลงในโครงสร้าง try-catch:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'เชื่อมต่อฐานข้อมูลสำเร็จ';
} catch(PDOException $e) {
echo "การเชื่อมต่อล้มเหลว: " . $e->getMessage();
}
?>
โค้ดเต็มจะมีลักษณะ ดังนี้:
<?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();
}
?>
ให้ทำการเชื่อมต่อกับฐานข้อมูลของคุณ ด้วยวิธีที่อธิบายในบทเรียน นี้