"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يقوم `mysqli_query ()` بإرجاع "تحذير: يتوقع mysqli_query () أن تكون المعلمة 1 هي MySQLi، مع إعطاء قيمة فارغة"؟

لماذا يقوم `mysqli_query ()` بإرجاع "تحذير: يتوقع mysqli_query () أن تكون المعلمة 1 هي MySQLi، مع إعطاء قيمة فارغة"؟

تم النشر بتاريخ 2024-12-22
تصفح:553

Why Does `mysqli_query()` Return

فهم "تحذير: يتوقع mysqli_query () أن تكون المعلمة 1 هي MySQLi، فارغة مذكورة في" خطأ

في محاولتك إنشاء مخصص CMS، واجهت رسالة الخطأ التالية:

"تحذير: يتوقع mysqli_query() أن تكون المعلمة 1 MySQLi، null الوارد في "

سبب الخطأ

يشير هذا الخطأ إلى أن وظيفة mysqli_query ()، التي تنفذ استعلامات SQL، تتوقع كائن MySQLi كأول كائن لها المعلمة. ومع ذلك، في دالة getPosts()، فإنك تقوم بتمرير قيمة فارغة بدلاً من كائن MySQLi.

الحل

الحل لهذه المشكلة هو التأكد من أن يقع كائن $con MySQLi ضمن نطاق وظيفة getPosts(). في التعليمات البرمجية الخاصة بك، يتم تعريف $con في النطاق العام، ولكن لا يمكن الوصول إليه داخل الوظيفة.

تمرير كائن MySQLi باعتباره تبعية

إحدى الطرق لـ معالجة هذا هو تمرير كائن MySQLi إلى وظيفة getPosts() باعتباره تبعية. وإليك كيفية القيام بذلك:

function getPosts(mysqli $con) { // إلخ
function getPosts(mysqli $con) {
    // etc
}
من خلال جعل كائن MySQLi معلمة للوظيفة، فإنك تضمن أنه متاح ضمن نطاق الوظيفة ويمكن استخدامه بواسطة mysqli_query().

توصيات إضافية

بالإضافة إلى حل مشكلة تحديد النطاق، فكر في تنفيذ التوصيات التالية:

    التعامل مع الأخطاء وفشل الاتصال باستخدام mysqli_report() لتعيين خيارات الإبلاغ عن الأخطاء.
  • أوقف تنفيذ البرنامج النصي في حالة حدوث خطأ في الاتصال أو خطأ استعلام باستخدام mysqli::error().
فيما يلي مثال لكيفية تنفيذ هذه التوصيات:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // رمي الاستثناءات $con=mysqli_connect("localhost"،xxxx"،xxxx"،xxxxx")؛ إذا (! $ يخدع) { طرح استثناء جديد ("فشل الاتصال بـ MySQL: " . mysqli_connect_error()); } getPosts($con);
function getPosts(mysqli $con) {
    // etc
}
من خلال تنفيذ هذه التوصيات، يمكنك ضمان قوة وموثوقية نظام إدارة المحتوى المخصص لديك.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3