เมื่อ PHP เตือน Deprecated MySQL Function จะเลิกใช้ MySQL Function แล้วนะ


เมื่อ PHP เตือน Deprecated MySQL Function จะเลิกใช้ MySQL Function แล้วนะ

Programmer Thailand Blog พบบทความข่าวสารดีๆ เขียนและแชร์ได้ทันที

beta version

เมื่อ 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 แทนซึ่งมีฟังก์ชั่นที่คล้ายกับตัวเดิมทำให้สามารถเรียนรู้ได้ง่าย

รายละเอียดฟีเจอร์ที่ได้มีการแจ้งเตือนปรับเปลี่ยนการเขียน โดยเป็นฟีเจอร์ที่เรียกได้ว่าเก่ามากๆ โดยจะแจ้งเตือนหากมีการเรียกใช้งาน สำหรับ เวอร์ชั่นนี้ได้มีการเตือนให้ปรับการเขียนบางฟีเจอร์ดังนี้

  1. MySQL Extension
  2. preg_replace()
  3. intl
  4. mcrypt

โดยสามารถดูรายละเอียดเพิ่มเติมได้ที่ http://php.net/manual/en/migration55.deprecated.php

อ้าวแล้วอย่างนี้จะติดต่อฐานข้อมูล MySQL ได้อย่างไรล่ะ ก็ยังคงทำได้อยู่นะครับ โดยทาง PHP มีให้เลือก 2 ทางคือ

  1. ใช้ MySQLi (MySQL Improved Extension) สามารถดูเพิ่มเติมได้ที่ http://php.net/manual/en/book.mysqli.php
  2. ใช้ 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) ฟรี!

(อย่าลืมกรอกอีเมลล์เพื่อสมัครรับข้อมูลดีๆ ด้านล่างนะครับ)

มานพ กองอุ่น

มานพ กองอุ่น
admin

  • 2 เพื่อน
  • 16 ผู้ติดตาม
  • 773 โพสต์