PHP : การเชื่อมต่อแบบ mysql_connect vs PDO แตกต่างกันอย่างไร

วันนี้เรามารู้จักข้อแตกต่างของการเชื่อต่อฐานข้อมูล แบบเก่าใช้ mysql แบบใหม่เป็น PDO แล้วมีคำถามตามมาว่าแล้วมันแตกต่างหรือดีกว่ากันยังๆ ไง ??

  • PDO เร็วกว่า ปลอกภัยกวา อ่านโค้ดง่ายกว่า และเปลี่ยนฐานข้อมูลได้ง่ายกว่า
  • PDO  สนับสนุน OOP
  • PDO สามารถป้องกัน SQL injection ได้
  • PHP Framework ส่วนใหญ่ใช้ PDO

จากด้านบนจะเห็นว่า PDO ดีกว่าในหลายๆด้าน ซึ่งที่สำคัญผมมองทางด้านความปลอดภัย นะครับ เห็นควรว่าควรเปลี่ยนมาใช้เป็นแบบ PDO กันดีกว่าครับ

ทีนี้มาดูในส่วนของโค้ดกันบ้าง

การเชื่อมต่อแบบ php_mysql

$mysql = mysql_connect($host, $user, $pass);
mysql_select_db($dbname);

การเชื่อมต่อแบบ PDO

$pdo = new PDO("mysql:dbname={$dbname};host={$host}", $user, $pass);

การ query ข้อมูลแบบ php_mysql

$result = mysql_query("SELECT col1, col2, col3 FROM table_name");
while($row = mysql_fetch_assoc($result)) {

}

ส่วน PDO จะเป็น

$sth = $pdo->prepare("SELECT col1, col2, col3 FROM table_name");
$sth->execute();
while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
//Process each row here
}

วันนี้เอาแบบคร่าวๆ ไปก่อนครับ วันหลังเดียวหาข้อมูลมาเพิ่มเติมให้อีก