"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > استخدام phpysql-shim لمعالجة توافق الوظائف `mysql_*` في PHP 7

استخدام phpysql-shim لمعالجة توافق الوظائف `mysql_*` في PHP 7

تم النشر بتاريخ 2024-08-07
تصفح:141

Using phpysql-shim to Address `mysql_*` Function Compatibility in PHP 7

مقدمة

اعتبارًا من PHP 7، تمت إزالة وظائف mysql_*. تحتاج التطبيقات التي لا تزال تستخدم هذه الوظائف إلى التحديث أو تواجه مشكلات في التوافق. أحد الحلول هو استخدام php7-mysql-shim، وهي مكتبة توفر طبقة توافق تسمح باستخدام وظائف mysql_* في PHP 7 عن طريق تعيينها إلى ما يعادلها من mysqli_*.

ما هو php7-mysql-shim؟

php7-mysql-shim هي مكتبة PHP مصممة لتوفير بديل مباشر لوظائف mysql_* المهملة. يسمح هذا للتطبيقات القديمة بالعمل على PHP 7 والإصدارات الأحدث دون الحاجة إلى إعادة كتابة كاملة لتفاعلات قاعدة البيانات.

فوائد استخدام php7-mysql-shim

  1. الانتقال السلس: يسمح للتطبيقات القديمة بالعمل على إصدارات PHP الحديثة دون إعادة هيكلة واسعة النطاق.
  2. الحد الأدنى من التغييرات: يتطلب فقط تضمين مكتبة الرقائق، مع ترك قاعدة التعليمات البرمجية الحالية دون تغيير إلى حد كبير.
  3. فعالة من حيث التكلفة: توفر الوقت والموارد التي كان من الممكن إنفاقها على إعادة كتابة التعليمات البرمجية لاستخدام mysqli أو PDO.

تثبيت

يمكنك تثبيت php7-mysql-shim عبر Composer، وهو مدير التبعيات لـ PHP.

التثبيت خطوة بخطوة

  1. تثبيت الملحن:
    إذا لم يكن برنامج Composer مثبتًا لديك بالفعل، فيمكنك تثبيته باتباع الإرشادات الموجودة على getcomposer.org.

  2. يتطلب php7-mysql-shim:
    انتقل إلى دليل مشروعك وقم بتشغيل الأمر التالي لإضافة php7-mysql-shim إلى مشروعك:

   composer require doozie-akshay/php7-mysql-shim
  1. قم بتضمين الرقائق في الكود الخاص بك: أضف السطر التالي في بداية نصوص PHP الخاصة بك، ويفضل أن يكون ذلك في ملف التكوين المضمن في جميع نصوصك البرمجية:
   require 'vendor/autoload.php';

مثال الاستخدام

الكود الأصلي باستخدام وظائف mysql_*

إليك مثال على التعليمات البرمجية القديمة باستخدام وظائف mysql_*:

// config.php
$db_host = 'localhost';
$db_user = 'root';
$db_password = '';
$db_name = 'test';

// Establish connection
$connection = mysql_connect($db_host, $db_user, $db_password);
if (!$connection) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_name, $connection);
// check_user.php
include_once('config.php');

$query = "SELECT * FROM users WHERE username = 'example_user'";
$result = mysql_query($query, $connection);

if (!$result) {
    die('Query failed: ' . mysql_error());
}

if (mysql_num_rows($result) > 0) {
    echo "User exists.";
} else {
    echo "User does not exist.";
}

mysql_close($connection);

تم تعديل الكود باستخدام php7-mysql-shim

بعد تثبيت php7-mysql-shim، ما عليك سوى تضمين ملف التحميل التلقائي:

// config.php
require 'vendor/autoload.php';

$db_host = 'localhost';
$db_user = 'root';
$db_password = '';
$db_name = 'test';

// Establish connection
$connection = mysql_connect($db_host, $db_user, $db_password);
if (!$connection) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_name, $connection);
// check_user.php
include_once('config.php');

$query = "SELECT * FROM users WHERE username = 'example_user'";
$result = mysql_query($query, $connection);

if (!$result) {
    die('Query failed: ' . mysql_error());
}

if (mysql_num_rows($result) > 0) {
    echo "User exists.";
} else {
    echo "User does not exist.";
}

mysql_close($connection);

معالجة الأخطاء

يهدف php7-mysql-shim إلى توفير التوافق الكامل مع وظائف mysql_*، بما في ذلك معالجة الأخطاء والفروق الدقيقة الأخرى. تأكد من أن رمز معالجة الأخطاء الموجود لديك يظل فعالاً دون تعديل.

خاتمة

يوفر php7-mysql-shim حلاً مباشرًا وفعالاً لتشغيل تطبيقات PHP القديمة التي تستخدم وظائف mysql_* على PHP 7 والإصدارات الأحدث. من خلال تثبيت الرقائق وإدراجها في مشروعك، يمكنك تجنب عمليات إعادة الكتابة الشاملة وضمان التوافق مع إصدارات PHP الحديثة، مما يسمح بالانتقال السلس واستمرار وظائف التطبيق.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/doozieakshay/using-php7-mysql-shim-to-address-mysql-function-compatibility-in-php-7-pi8?1 إذا كان هناك أي انتهاك، من فضلك اتصل بـ [email protected]
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3