البرمجة

حل مشكلة mysqli_select_db وتحسين أداء قاعدة البيانات في PHP

في بداية الأمر، يظهر من الكود المقدم أنك تواجه مشكلة مع استخدام دالة mysqli_select_db() في سطر رقم 10، حيث تتوقع الدالة استلام معاملين وأنت لم تقدم سوى معامل واحد. لتجاوز هذه المشكلة، يجب عليك تعديل السطر المذكور ليبدو كالتالي:

php
mysqli_select_db(mysqli_connect($host, $username, $password), $db_name) or die("cannot select DB");

يجب عليك فهم أن دالة mysqli_select_db() تحتاج إلى اتصال ناجح بقاعدة البيانات كمعامل أول، واسم قاعدة البيانات كمعامل ثانٍ.

بالنسبة لبقية الكود، يبدو أنك تحاول عرض بيانات من قاعدة البيانات في جدول HTML. من النظرة الأولى، يبدو أن كل شيء صحيح، ولكن هناك بعض الأمور التي يمكن تحسينها.

أولاً، في جملة الاستعلام SQL في السطر 14، يفضل استخدام دالة mysqli_query() بالشكل الصحيح مع تمرير الاتصال والاستعلام كمعاملين:

php
$result = mysqli_query(mysqli_connect($host, $username, $password), $sql);

ثانيًا، في السطر 46، تحاول حذف السجلات المحددة. ومع ذلك، يجب عليك تحديد $soft_id بدلاً من $del_id:

php
$sql = "DELETE FROM $tbl_name WHERE soft_id='$del_id'";

تذكير: يجب عليك دائماً تفادي استخدام دوال قديمة مثل mysql_ واستخدام دوال mysqli_ لتجنب ثغرات الأمان.

المزيد من المعلومات

بالطبع، دعوني أوسع المعلومات حول بعض النقاط التي يمكن أن تكون مفيدة لك في تطوير وفهم الكود الخاص بك:

  1. استخدام MySQLi بدلاً من MySQL:
    يفضل استخدام مكتبة MySQLi بدلاً من MySQL، حيث تعتبر MySQLi أكثر تقدمًا وتوفيرًا للأمان. تحسنت MySQLi لتوفير واجهة برمجة أفضل وميزات أمان إضافية. يمكنك استخدام استعلامات معدة مسبقًا لتجنب هجمات حقن SQL.

  2. استخدام Prepared Statements:
    لتعزيز أمان قاعدة البيانات، يفضل استخدام Prepared Statements في استعلامات SQL. يساعد هذا في تجنب هجمات حقن SQL، حيث يقوم MySQLi بفحص وتنظيف البيانات تلقائيًا.

    مثال على كيفية استخدام Prepared Statements:

    php
    $stmt = mysqli_prepare($connection, "SELECT * FROM $tbl_name"); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt);
  3. إدارة الأخطاء بشكل أفضل:
    يمكنك تحسين إدارة الأخطاء في الكود الخاص بك. استخدم دالة mysqli_error() للحصول على رسالة الخطأ الخاصة بقاعدة البيانات في حال حدوث أي مشكلة.

    مثال:

    php
    $result = mysqli_query($connection, $sql); if (!$result) { die("Query failed: " . mysqli_error($connection)); }
  4. تنظيم الكود:
    يمكنك تنظيم الكود بشكل أفضل عن طريق تجزئة العمليات إلى وظائف منفصلة. على سبيل المثال، يمكنك وضع كود استعلام الحذف في وظيفة منفصلة بدلاً من وضعها مباشرة في الكود الرئيسي.

    مثال:

    php
    function deleteRecords($connection, $tbl_name, $checkbox) { // الكود الخاص بحذف السجلات }
  5. تحسين التفاعل مع المستخدم:
    في حالة حدوث أخطاء، يمكنك تحسين تجربة المستخدم من خلال عرض رسائل خطأ توضح المشكلة بشكل واضح دون الكشف عن تفاصيل حساسة.

    مثال:

    php
    die("Query failed: Unable to select database. Please contact support.");

باستخدام هذه النصائح، يمكنك تحسين أداء وأمان تطبيقك وتسهيل صيانته في المستقبل.

زر الذهاب إلى الأعلى