مرکز آموزش

رفع خطای Call To Undefined Function Mysql_connect() در PHP 7

  • مشکل mysql_connect در php7, خطای mysql_connect
  • 32

چنانچه در حال مطالعه این مقاله هستید احتمالا با این مشکل مواجه هستید که علارغم درج اطلاعات صحیح برای اتصال به دیتابیس در API پروژه مبتنی بر PHP، کماکان با خطای زیر مواجه می شوید:

PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect()

این خطا به خصوص زمانی خود را نشان می دهد که به تازگی از PHP 5.6 به PHP 7 یا بالاتر ارتقا داده باشید.



دلیل خطا

دلیل این خطا دقیقا نسخه PHP است. به طور کلی توابع و مشتقات mysql_* در PHP 7 به بالا دیگر پشتیبانی نمی شوند و لذا این تابع و مشتقات آن فقط در PHP 5.6 و قبل از آن پشتیبانی می شود.

 

نحوه رفع خطا

برای رفع این خطا دو راهکار وجود دارد:

 

1- تغییر نسخه PHP سرور یا هاست به 5.6

در صورت انتخاب این راهکار کافیست به این راهنما مراجعه و نسخه PHP را به 5.6 کاهش دهید.

 

2- بروز رسانی پروژه مطابق با توابع جایگزین در PHP 7 و بالاتر

توصیه ما استفاده از این راهکار است. چراکه با یک تیر دو نشان می زنید هم از قابلیت های بسیار خوب PHP 7 بهره مند می شوید هم پروژه خود را بروز کرده اید تا به لحاظ امنیتی و سرعت شرایط بسیار بهتری داشته باشید.

چنانچه انتخاب شما این راهکار است باید از mysqli یا PDO استفاده کنید. در زیر نمونه ای از API در مقایسه با روش قدیمی ارایه شده است. لازم است API پروژه خود را مطابق با یکی از دو روش mysqli یا PDO تغییر دهید:

<?php
// mysqli
$mysqli = new mysqli("localhost", "username", "password", "database");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

// mysql
$c = mysql_connect("localhost", "username", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

تمامی حقوق مادی و معنوی این مطلب متعلق به HiSupport است.
کپی برداری از مطالب تنها با ذکر منبع و لینک به وبسایت HiSupport بلامانع است.


آیا این آموزش به شما کمک کرد؟