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 มากยิ่งขึ้น และนอกจากนั้นจำทำให้เราพัฒนาตัวเองให้สามารถเขียนโปรแกรมในระดับที่สูงขึ้นได้เช่นกัน
ตัวอย่างการใช้งาน
# การติดต่อฐานข้อมูล
code ในการเชื่อมต่อแบบ php_mysql
<pre class="brush: javascript">
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
</pre>
<pre class="brush: javascript">
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
</pre>
code ในการเชื่อมต่อแบบ PDO
<script language="javascript">
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
</script>
แค่นี้ก็ง่าย และสั้นกว่าเห็น ๆ แล้ว :)
สำหรับ code ในการ query ข้อมูลแบบ php_mysql
<?php $result = mysql_query('SELECT * from table') or die(mysql_error()); $num_rows = mysql_num_rows($result); while($row = mysql_fetch_assoc($result)) { echo $row['field1'].' '.$row['field2']; //etc... }?>
ส่วน PDO จะเป็น<?phpforeach($db->query('SELECT * FROM table') as $row) { echo $row['field1'].' '.$row['field2']; //etc... }?>หรือ<?php $stmt = $db->query('SELECT * FROM table'); while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo $row['field1'].' '.$row['field2']; //etc... }?>หรือ<?php $stmt = $db->query('SELECT * FROM table'); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); //use $results?>การนับแถวด้วย rowCount();<?php $stmt = $db->query('SELECT * FROM table'); $row_count = $stmt->rowCount(); echo $row_count.' rows selected';?>การ INSERT,DELETE,UPDATE ด้วย PDO<?php $stmt = $db->prepare("INSERT INTO table(field1,field2,field3,field4,field5) VALUES(:field1,:field2,:field3,:field4,:field5)"); $stmt->execute(array(':field1' => $field1, ':field2' => $field2, ':field3' => $field3, ':field4' => $field4, ':field5' => $field5)); $affected_rows = $stmt->rowCount();?><?php $stmt = $db->prepare("DELETE FROM table WHERE id=:id"); $stmt->bindValue(':id', $id, PDO::PARAM_STR); $stmt->execute(); $affected_rows = $stmt->rowCount();?><?php $stmt = $db->prepare("UPDATE table SET name=? WHERE id=?"); $stmt->execute(array($name, $id)); $affected_rows = $stmt->rowCount();?>นี้ก็คร่าว ๆ ของเจ้า PHP PDO เป็นไงก็บ้างครับ ส่วนตัวผมคิดว่ามันก็ง่ายดีนะ สั้น ๆ ดี แม้แรก ๆ จะคิดว่ามันยากเพราะเป็น OOP เต็มรูปแบบ แถมยังใช้ได้กับหลายฐานข้อมูลโดยที่เราไม่ต้องเปลี่ยนโค้ดทั้งหมด เพียงแค่เปลี่ยนการเชื่อมต่อเท่านั้น ส่วนคนไหนสนใจเพิ่มก็เข้าไปศึกษากันต่อได้ครับที่มา :มาใช้ PHP Data Object (PDO) กันเถอะ
PHP PDO คืออะไร
