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

چنانچه در حال مطالعه این مقاله هستید احتمالا با این مشکل مواجه هستید که علارغم درج اطلاعات صحیح برای اتصال به دیتابیس در 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']);
?>
  • مشکل mysql_connect در php7, خطای mysql_connect
  • 33 کاربر این را مفید دانستند
آیا این آموزش به شما کمک کرد؟

مقالات مربوطه

رفع مشکل خطای SQLSTATE[HY000] [2002] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

گاهی اوقات در هنگام کار با دیتابیس MySQL قصد دارید تغییری در آن ایجاد کنید اما با خطای زیر مواجه...

رفع خطای 500 در SubDomain یا Addon Domain وبسایت لاراولی

اگر در حین مطالعه این مقاله هستید احتمالا یک وبسایت دارید که با فریم ورک محبوب لاراول نوشته شده...

نحوه جلوگیری از دریافت ایمیل های AutoSSL

پس از افزایش تعداد وبسایت‌هایی که از گواهینامه SSL استفاده می‌کنند به خصوص با پبدایش اس اس ال...

نحوه فعال سازی ثبت خطا (error_log) در لاراول - Whoops looks like something went wrong

گاها پیش می آید که پس از آپلود پروژه لاراول در هاست، وبسایت یا اپلیکیشن شما با خطای زیر مواجه می...

رفع خطای No application encryption key has been specified در لاراول

اکنون که در حال مطالعه این مقاله هستید حتما پروژه لاراولی خود را در هاست آپلود کرده‌اید ولیکن به...