PHP5 กับ MySQL bug?

หลังจากที่ผมได้ทำการติดตั้ง Apache 2.0.50 กับ PHP5 ไปแล้ว ทุกอย่างก็เหมือนจะทำงานได้ดีจนกระทั่ง ผมจะเพิ่ม extension ของ php_mysql.dll เพื่อให้ PHP สามารถติดต่อกับ MySQL ได้ ปรากฎว่าทำยังไงก็ไม่สามารถเพิ่ม mysql extension ได้ และจะเกิดข้อความ error แบบตัวอย่างข้างล่างนี้แหละ ซึ่งทำให้งง เพราะไฟล์มันก็อยู่ถูกที่แล้ว ลองกี่ทีๆ ก็เหมือนกัน

ข้อความเขียนไว้ว่า
PHP Startup: Unable to load dynamic library ‘d:program filesphpextphp_mysql.dll’ – The specified module could not be found.

เลยลองเข้าไปหาดูในเว็บ พบว่ามีคนโวยวายไว้ที่นี่เหมือนกัน http://bugs.php.net/bug.php?id=29224

ผมลองทำตามที่เขาเขียนไว้ แต่ก็ไม่ได้ผล ก็เลยลองใหม่ สิ่งที่ผมทำก็คือ
1. แก้ไข php.ini ให้เรียก module mysql ด้วยคำสั่ง
extension=php_mysql.dll

2. copy ไฟล์ libmysql.dll ไปไว้ที่ d:/windows/system32/

3. อย่าลืม restart Apache Web Server ใหม่

ปรากฎว่าคราวนี้ได้ผลแฮะ!

แล้วผมก็เจอคำตอบที่ FAQ ของ PHP ที่นี่ เจ้าตัว MySQL client libaries ไม่ได้ถูก bundle มากับ PHP5 นี่เอง นอกจากนี้ยังแนะนำให้ใช้ MySQLi แทนด้วย เพราะเนื่องจากว่าเจ้า MySQL extension ตัวที่มากับ PHP5 นั้นไม่ได้สนับสนุนฟังก์ชันต่างๆ ของ MySQL ในเวอร์ชันที่มากกว่า 4.1.0 ด้วย

งั้นผมลองเปลี่ยนมาใช้ MySQLi ดีกว่า วิธีการก็คือ
1. comment MySQL ซะ ด้วยการเติม ; ไปข้างหน้า
;extension=php_mysql.dll

2. เรียก module MySQLi ด้วยการเพิ่มคำสั่ง
extension=php_mysqli.dll

3. copy ไฟล์ libmysqli.dll ไปไว้ที่ d:/windows/system32/

4. อย่าลืม restart Apache Web Server ใหม่

Leave a Reply

Your email address will not be published. Required fields are marked *