البرمجة

حل مشكلة Fatal Error في PHP

الخطأ الذي تواجهه هو “PHP Fatal error: Call to a member function query() on null”، والذي يشير إلى أنه تم استدعاء الدالة query() على كائن فارغ (null). تظهر هذه المشكلة في سطر 9 من ملف PHP الخاص بك.

لفهم هذا الخطأ بشكل أفضل، دعني أشرح لك خطوات تنفيذ الكود:

  1. تضمين ملف connect_db.php: في البداية، تقوم بتضمين ملف connect_db.php الذي يحتوي على ربط قاعدة البيانات.

  2. تهيئة الاتصال بقاعدة البيانات: تعيين متغير $conn إلى قيمة null، دون أن تقوم بتعيينه إلى أي اتصال فعلي بقاعدة البيانات.

  3. استعلام قاعدة البيانات: تحاول استعلام قاعدة البيانات باستخدام الكائن $conn المحدد في الخطوة السابقة. ومع ذلك، حيث أن $conn لا يحتوي على أي قيمة (أي أنه null)، فإن محاولة استدعاء الدالة query() عليه تؤدي إلى الخطأ الذي تواجهه.

لحل هذه المشكلة، يجب عليك التأكد من أن قاعدة البيانات تم ربطها بشكل صحيح وأن المتغير $conn يحمل الاتصال الفعلي بقاعدة البيانات. يمكنك تحقيق ذلك عن طريق تعيين $conn إلى الاتصال الفعلي بقاعدة البيانات بعد استدعاء ملف connect_db.php، على سبيل المثال:

php
include 'connect_db.php'; // قم بتهيئة الاتصال بقاعدة البيانات هنا $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);

حيث يتم استخدام PDO (PHP Data Objects) لإنشاء اتصال بقاعدة البيانات. تأكد من استبدال $servername و $username و $password بالقيم الصحيحة للاتصال بقاعدة البيانات الخاصة بك.

بعد ذلك، يجب أن تعمل الاستعلامات بشكل صحيح بما في ذلك استدعاء الدالة query() دون أي أخطاء.

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

بالطبع، دعني أكمل لك المقال:

بالتالي، بعد تهيئة الاتصال بقاعدة البيانات بشكل صحيح، يمكنك استكمال تنفيذ الكود الخاص بك بثقة. ومن الجدير بالذكر أنه بمجرد أن تتأكد من أن المتغير $conn يحمل الاتصال الصحيح بقاعدة البيانات، يجب عليك التأكد من أن الاستعلامات SQL المرسلة تعمل بشكل صحيح أيضًا.

في الكود الذي قدمته، تحاول استعلام قاعدة البيانات باستخدام الاستعلام التالي:

php
$sqlGetFeedback = "SELECT * FROM t_abc";

هذا الاستعلام يحاول استرداد جميع الصفوف من الجدول “t_abc”. يجب عليك التأكد من أن هذا الجدول موجود في قاعدة البيانات الخاصة بك وأنه يحتوي على البيانات التي تحتاج إليها.

بعد ذلك، يتم تنفيذ الاستعلام باستخدام الدالة query() والتي يتم استدعاؤها على كائن الاتصال $conn. بعد تنفيذ الاستعلام، يتم التحقق مما إذا كان هناك صفوف مسترجعة باستخدام الدالة rowCount(). إذا كانت هناك صفوف مسترجعة، يتم استردادها باستخدام الدالة fetchAll() وتحويلها إلى تنسيق JSON باستخدام الدالة json_encode().

وفي حالة عدم وجود صفوف مسترجعة، يتم إرجاع استجابة فارغة باستخدام echo ‘[{}]’;

باختصار، لحل الخطأ الذي تواجهه، يجب عليك التأكد من الخطوتين التاليتين:

  1. تهيئة الاتصال بقاعدة البيانات بشكل صحيح بعد استدعاء ملف connect_db.php.
  2. التأكد من أن الاستعلام SQL المرسل صحيح وأن الجدول المستهدف موجود في قاعدة البيانات الخاصة بك.

باتباع هذه الخطوات، يجب أن تتمكن من تجنب الأخطاء وتنفيذ الكود بنجاح. وبهذا، ستتمكن من تطوير تطبيقات PHP بثقة وسلاسة.

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