แก้ปัญหา website พบ error
Fatal error: Uncaught Error: Call to undefined function mysql_connect()
เนื่องจาก php extension mysql ไม่รองรับ PHP 5.5 ถูกลบออกจาก PHP verison 7 ขึ้นไป
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0
Fatal error: The extension "MySQLi" is not available
เป็นเว็บไซต์ที่พัฒนามานานยังใช้ การเชื่อม database ด้วย mysql function อยู่ และเกิดจาการย้ายข้อมูลไปยัง hosting หรือการอัพเดท OS ที่ไม่มี php extension mysql จึงไม่สามารถใช้งาน php function mysql_* ได้
1.หากไม่แสดง error ให้เปิดการตรวจสอบ error log ได้ที่
- ใน Control panel -> Tools - > MultiPHP INI
- เลือกโดเมนที่ต้องการตรวจสอบ -> click เปิด display_errors
ถ้าไม่ได้เปิด display_errors สามารถตรวจสอบ error จากไฟล์
- เข้าระบบ Control panel -> ใน File Manager
{user_home_ path}/public_html/error_log
2.ตรวจสอบ php current version
สร้าง file public_html/phpversion.php
Add code:
3.กรณีเว็บไซต์ (Website) ที่พัฒนาเป็นเว็บเก่า ใช้ PHP 5.6 จะต้องปรับ PHP version
- ไปที่ Control panel -> เลือก PHP Selector
- เปลี่ยน Current PHP version เป็น PHP 5.6
4.enable extension mysql (เฉพาะ Cloud Linux)
- ไปที่ Control panel -> PHP Selector -> Extensions select mysql,mysqlnd
“Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead” ให้ปิด display error จากข้อ1
กรณีต้องการอัพเดท code เป็น PHP 7, PHP 8 ให้ enable mysqli และจะต้องแก้ code ทุกจุดที่เรียกใช้ function mysql_* ทั้งหมด
ซึ่งจะใช้เวลาแก้ไข code โปรแกรมนานและเกิดข้อผิดพลาดได้ง่าย
จึงมีวิธีแนะนำให้ง่ายและรวดเร็วไม่ต้องปรับแก้ code หลายจุด โดยใช้วิธีสร้าง mysql to mysqli wrapper
ยกตัวอย่าง ให้ download file จาก
https://github.com/e-sites/php-mysql-mysqli-wrapper/
และ rename file mysql.php to mysql_wrapper.php
Add code : include file ด้านบนหัวไฟล์ที่
ก่อนแก้ไข
หลังแก้ไข
เพียงเท่านี้โปรแกรมก็สามารถเชื่อมต่อ database เดิมได้ โดนไม่ต้องแก้ไข code php จาก function mysql_* to mysqli_* ในหลายๆ จุด ทำให้ลดข้อผิดพลาดและความรวดเร็วในการแก้ไขปํญหาได้เร็วขึ้น
Line : @netway (มี @ ด้านหน้า) หรือ https://bit.ly/line-netway
Facebook : m.me/netway.offcial
Tel : 02-055-1095
Email : support@netway.co.th
Web Chat : https://netway.co.th/