การเชื่อมต่อถูกสร้างขึ้นโดยการสร้างอินสแตนซ์ของคลาสฐาน PDO ไม่ว่าจะใช้ไดรเวอร์ใด ชื่อคลาส PDO จะถูกใช้
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);?>
หมายเหตุ: หากมีข้อผิดพลาดในการเชื่อมต่อ วัตถุข้อยกเว้น PDOException จะถูกส่งออกไป
<?phptry { $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) { print_r ($row); } $dbh = null;} catch (PDOException $e) { พิมพ์ "ข้อผิดพลาด!: " . "<br/>"; ตาย();}?>
หลังจากเชื่อมต่อข้อมูลสำเร็จแล้ว อินสแตนซ์ของคลาส PDO จะถูกส่งกลับไปยังสคริปต์ การเชื่อมต่อนี้ยังคงใช้งานได้ตลอดวงจรชีวิตของออบเจ็กต์ PDO
หากต้องการปิดการเชื่อมต่อ คุณต้องทำลายออบเจ็กต์เพื่อให้แน่ใจว่าการอ้างอิงที่เหลือทั้งหมดจะถูกลบออก คุณสามารถกำหนดค่า NULL ให้กับตัวแปรออบเจ็กต์ได้
หากคุณไม่ทำเช่นนี้ PHP จะปิดการเชื่อมต่อที่ส่วนท้ายของสคริปต์โดยอัตโนมัติ
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); // ใช้การเชื่อมต่อที่นี่ // เมื่อรันเสร็จแล้ว ให้ปิดการเชื่อมต่อที่นี่ $dbh = null ;? >
เว็บแอปพลิเคชันจำนวนมากได้รับประโยชน์จากการใช้การเชื่อมต่อแบบถาวรกับบริการฐานข้อมูล
การเชื่อมต่อแบบถาวรจะไม่ปิดหลังจากสคริปต์สิ้นสุดลง และจะถูกแคชและนำมาใช้ใหม่เมื่อมีการร้องขอการเชื่อมต่อสคริปต์อื่นโดยใช้ข้อมูลประจำตัวเดียวกัน
การแคชการเชื่อมต่อแบบถาวรสามารถทำให้เว็บแอปพลิเคชันเร็วขึ้นได้ โดยการหลีกเลี่ยงค่าใช้จ่ายในการสร้างการเชื่อมต่อใหม่ทุกครั้งที่สคริปต์จำเป็นต้องพูดคุยกับฐานข้อมูล
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array( PDO::ATTR_PERSISTENT => true));?>
หมายเหตุ: หากคุณต้องการใช้การเชื่อมต่อแบบถาวร คุณต้องตั้งค่า PDO::ATTR_PERSISTENT ในอาร์เรย์ตัวเลือกไดรเวอร์ที่ส่งผ่านไปยังตัวสร้าง PDO หากแอตทริบิวต์นี้ถูกตั้งค่าด้วย PDO::setAttribute() หลังจากที่วัตถุได้รับการเตรียมใช้งานแล้ว ไดรเวอร์จะไม่ใช้การเชื่อมต่อแบบถาวร