เมื่อ PHP เตือน Deprecated MySQL Function จะเลิกใช้ MySQL Function แล้วนะ
สวัสดีครับบทความนี้เราไปดูที่มาของคำเตือนเวลาเราเรียกใช้งานฟังก์ชั่น mysql_xxxxx และ ฟังก์ชั่นอื่นๆ แน่นอนครับว่า PHP เองได้มีการปรับปรุงอัพเดทฟังก์ชั่นและฟีเจอร์ต่างๆ ให้รองรับและเข้ากับเทคโนโลยีปัจจุบัน ดังนั้นการเขียนแบบเดิมจะถูกแจ้งเตือนใน PHP 5.5 ขึ้นไป เช่น
- mysql_connect();
- mysql_select_db();
- mysql_query();
- mysql_fetch_array();
- และฟังก์ชั่นอื่นๆ ที่ขึ้นต้นด้วย mysql_
โอ้วบร๊ะเจ้า..ไร้ซึ่งเยื่อใยกันเลยทีเดียว จำใจจำจากเจ้าจำจร ไว้อาลัยแพ๊บครับ โปรแกรมที่เขียนขึ้นจะทำงานเป็นปกติไหมนะใน PHP 5.5 แนวทางคือควรปรับมาใช้ mysqli แทนซึ่งมีฟังก์ชั่นที่คล้ายกับตัวเดิมทำให้สามารถเรียนรู้ได้ง่าย
รายละเอียดฟีเจอร์ที่ได้มีการแจ้งเตือนปรับเปลี่ยนการเขียน โดยเป็นฟีเจอร์ที่เรียกได้ว่าเก่ามากๆ โดยจะแจ้งเตือนหากมีการเรียกใช้งาน สำหรับ เวอร์ชั่นนี้ได้มีการเตือนให้ปรับการเขียนบางฟีเจอร์ดังนี้
- MySQL Extension
- preg_replace()
- intl
- mcrypt
โดยสามารถดูรายละเอียดเพิ่มเติมได้ที่ http://php.net/manual/en/migration55.deprecated.php
อ้าวแล้วอย่างนี้จะติดต่อฐานข้อมูล MySQL ได้อย่างไรล่ะ ก็ยังคงทำได้อยู่นะครับ โดยทาง PHP มีให้เลือก 2 ทางคือ
- ใช้ MySQLi (MySQL Improved Extension) สามารถดูเพิ่มเติมได้ที่ http://php.net/manual/en/book.mysqli.php
- ใช้ PDO (PHP Data Object) สามารถดูเพิ่มเติมได้ที่ http://php.net/manual/en/ref.pdo-mysql.php
ถ้าจะให้แนะนำนะครับ ผมว่าเริ่มที่ PDO เลยน่าจะดีกว่าเพราะสามารถเชื่อมต่อไปยังฐานข้อมูลได้มากกว่า 1 ค่าย ซึ่งถ้าใช้ mysqli จะใช้ได้เพียง MySQL เท่านั้น
ตัวอย่างการเขียนการเชื่อมต่อ MySQL ด้วย PDO
try { $dbh = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', 'xxx', 'xxx', array( PDO::ATTR_PERSISTENT => false)); $stmt = $dbh->prepare("CALL getname()"); // call the stored procedure $stmt->execute(); echo "<B>outputting...</B><BR>"; while ($rs = $stmt->fetch(PDO::FETCH_OBJ)) { echo "output: ".$rs->name."<BR>"; } echo "<BR><B>".date("r")."</B>"; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }
และนี่ก็หวังว่าสำหรับเพื่อนๆ ที่กำลังจะเขียนโปรแกรมทำ Web Application ด้วยภาษา PHP ควรทำความเข้าใจก่อนลงมือเขียนโค๊ด ที่จะเลือกเขียนให้รองรับกับเทคโนโลยีใหม่ๆ หรือไม่
แนะนำหลักสูตรเรียนรู้การเขียนโปรแกรมภาษา PHP ด้วย PDO (PHP Data Object) ฟรี!
(อย่าลืมกรอกอีเมลล์เพื่อสมัครรับข้อมูลดีๆ ด้านล่างนะครับ)