PHP PDO คืออะไร
PHP PDO คืออะไรวันนี้มีคำตอบนะครับ PDO คือ Extension หรือส่วนเสริมของ PHP ย่อมาจากคำว่า PHP DataObject ซึ่งเป็น Object ที่ใช้ในการเชื่อมต่อกับฐานข้อมูลได้หลากหลายโดยที่เราไม่ต้องมานั่งเรียนรู้การใช้งานฐานข้อมูลแต่ล่ะฐาน ที่สำคัญคือใช้คำสั่งเดียวสามารถทำงานได้กับฐานข้อมูลหลายๆ แบบได้นั่นเอง เช่นคำสั่งเรียกข้อมูล $obj->fetch() หากมีการเปลี่ยนฐานข้อมูลก็ยังใช้คำสั่งเดิมไม่ได้เปลี่ยน จึงทำให้ PDO มีความยืดหยุ่นและสะดวกมากยิ่งขึ้น
PHP เวอร์ชั่น 5.5 ขึ้นไปได้ยกเลิกการเชื่อมต่อ MySQL แบบเดิมแล้วคือการใช้ Function mysql_connect() และ mysql_xxxx() ทั้งหลาย แต่จะไปใช้ MySQLi หรือ MySQL Improved แทนซึ่งมีความปลอดภัยมากกว่า
แต่อย่างไรก็ตามผมคิดว่าเราควรมาเริ่มใช้งาน PDO มากกว่า เนื่องจากการทำงานเป็นลักษณะ Object ซึ่ง PHP ก็รองรับการเขียนโปรแกรมแบบ Object มากยิ่งขึ้น และนอกจากนั้นจำทำให้เราพัฒนาตัวเองให้สามารถเขียนโปรแกรมในระดับที่สูงขึ้นได้เช่นกัน
ตัวอย่างการใช้งาน
# การติดต่อฐานข้อมูล
$dbhost = 'localhost';
$dbuser='root';
$dbpass='';
$pdo = new PDO("mysql:dbname={$dbname};host=($dbhost}", $dbuser, $dbpass);
# การคิวรี่ข้อมูล
$result = $pdo->prepare("SELECT * FROM table_name");
$result->execute();
while($rs = $result->fetch()){
echo $rs['field_name'];
}
# การเรียกข้อมูล 1 แถว
$sql = "SELECT * FROM table WHERE field_name = :field_param";
$result = $pdo->prepare($sql);
$result->execute(array(':field_param'=>$_GET['param']));
การทำการ bind param นั้นเป็นการแทนที่ :field_param ด้วย ค่าที่ $_GET['param'] จาก URL ทำให้มีความปลอดภัยเรื่อง SQL Injection มากยิ่งขึ้น
# การเพิ่มข้อมูล
$sql = "INSERT INTO table_name('field1','field2') VALUES(:f1_param,:f2_param)";
$result = $pdo->prepare($sql);
$result->execute(array(
':f1_param'=>$_POST['param1'],
'f2_param'=>$_POST['param2']
));
เพื่อความเข้าใจเพิ่มเติมสามารถลงทะเบียนเรียนหลักสูตร PHP PDO ได้จาก หลักสูตร PHP