บทความนี้จะพูดถึงส่วนขยาย (Extension) ของภาษา PHP คือ mysql และ mysqli โดยทั้งคู่เป็นส่วนขยายที่ทำให้เราสามารถเขียนโปรแกรมภาษา PHP เพื่อเชื่อมต่อ และจัดการกับฐานข้อมูล MySQL ได้ แต่ทั้ง 2 มีความแตกต่างกัน โดยมีรายละเอียดดังนี้
mysql คือ
ในที่นี้ไม่ได้หมายถึงฐานข้อมูล MySQL แต่หมายถึงส่วนขยาย mysql_* ซึ่งเป็นชุดคำสั่งของ PHP ที่ทำให้เราสามารถเขียนโปรแกรมเพื่อจัดการข้อมูลในฐานข้อมูล MySQL ได้ เช่น mysql_connect ที่ใช้สำหรับเชื่อมต่อฐานข้อมูล เป็นต้น
mysqli คือ
เป็นส่วนขยายที่เพิ่มความสามารถจาก mysql_* เป็น mysqli_* (MySQL Improved) มีหน้าที่เดียวกัน คือ ทำให้เราสามารถเขียนโปรแกรมจัดการฐานข้อมูล MySQL ได้ด้วยภาษา PHP แต่จะมีความสามารถที่มากกว่าคำสั่ง mysql แบบเดิม
mysql กับ mysqli ต่างกันอย่างไร
1. mysqli รองรับการเขียนโปรแกรมเชิงวัตถุ (OOP) แต่ mysql ไม่รองรับ รองรับเฉพาะแบบโครงสร้าง
2. mysqli รองรับความสามารถใหม่ๆ เช่น prepared statements ใช้ป้องกันการถูกโจมตีแบบ SQL Injection
3. mysqli รองรับการเชื่อมต่อหลายๆ อันพร้อมกันได้ แต่ mysql ไม่รองรับ
4. mysqli มีความสามารถ และประสิทธิภาพที่สมบูรณ์กว่า mysql
สรุป mysql กับ mysqli เป็นส่วนขยาย หรือชุดคำสั่งในภาษา PHP เพื่อทำงานกับฐานข้อมูล MySQL ทั้งคู่ แต่มีความแตกต่างกันคือ mysqli เป็นชุดคำสั่งที่ถูกพัฒนาเพื่อเพิ่มขีดความสามารถจาก mysql หากคุณกำลังเริ่มต้นศึกษาแนะนำให้ศึกษา mysqli จะเป็นทางเลือกที่ดีกว่า