اذهب إلى المحتوى
  • 0

خطأ في الدالة mysqli_query() expects at least 2 parameters

Mohammed Aladimi

السؤال

Recommended Posts

  • 0

يوجد لديك خطأ في السطر 148 السبب أن دالة mysqli_query تتوقع منك بارامترين بينما أنت مررت لها فقط بارامتر واحد, لقد نسيت أن تمرر لها mysqli_connect المسمى $conn حسب ملفك.

$user_info = mysqli_query($conn, "SELECT * FROM users WHERE username = '$username'");

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ منذ ساعة مضت قال Mohammed Aladimi:

السلام عليكم ورحمة اللة وبركاتة 

لماذا يظهر لي هذا ال  Warning ؟

قد أرفقت لكما الملف أرجو أن تفحصوا الخطأ إن لكم وقت

وشكرا لكم

دالة ال mysqli_query   تأخذ براميتر  خاص بالquery وبراميتر للconnection  

الخطأ: 

 $user_info = mysqli_query("SELECT * FROM users WHERE username = '".$username."'");

الحل: 

 $user_info = mysqli_query($conn,"SELECT * FROM users WHERE username = '".$username."'");

 

تم التعديل في بواسطة omar haddad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحباً @Mohammed Aladimi
الخطأ يفيد أن الدالة mysqli_query تقبل مُعاملين المُعامل الأول يكون من النوع mysqli و الثاني هو الكويري أو الإستعلام و نوعه string و في الحقيقة أن الدالة تقبل معامل ثالث إختياري هو عبارة عن ثابت يأخذ أحد القيمتين التاليتين:

1- MYSQLI_STORE_RESULT و هو الثابت الإفتراضي أي أننا إذا لم نُحدد سيكون هو المُستخدم 

2- MYSQLI_USE_RESULT حسب التوثيق الرسمي أن هذا الثابت نستعمله عندما نريد استرداد كمية كبيرة من البيانات.

 هناك طريقتين للإستعلام بإستخدام mysqli:

1- الطريقة الإجرائية: ( Procedural ):

<?php

$connection = mysqli_connect("localhost", "user", "password", "database_name"); // إنشاء رابط الإتصال بقاعدة البيانات 

// فحص إذا حدثت أخطاء غير متوقعة أثناء الإتصال
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

// إذا تم تجاوز الفحص هذا يعني أن الإتصال تم بنجاح
// إذن يُمكننا الإستعلام من قاعدة البيانات 
if ($result = mysqli_query($connection, "هنا ستقوم بكتابة الإستعلام الذي تريده")) {
  
  // نقوم هنا بطباعة النتيجة أو الشيء الذي نريده
  // code here
  
  
  // أخيراً نقوم بتحرير الذاكرة المرتبطة بالنتيجة
  mysqli_free_result($result);
  
}

// هنا نقوم بإغلاق الإتصال الذي فتحناه مع قاعدة البيانات
mysqli_close($connection);

?>

2- عن طريق البرمجة الغرضية التوجه:

<?php

$mysqli = new mysqli("localhost", "user", "password", "database_name"); // إنشاء كائن أو نسخة من الصنف mysqli

// فحص الإتصال
if ($mysqli->connect_errno) {
  printf("Connect failed: %s\n", $mysqli->connect_error);
  exit();
}

// إذا تم تجاوز الفحص هذا يعني أن الإتصال تم بنجاح
// إذن يُمكننا الإستعلام من قاعدة البيانات
if ($result = $mysqli->query("هنا ستقوم بكتابة الإستعلام الذي تريده")) {
  
  // نقوم هنا بطباعة النتيجة أو الشيء الذي نريده
  // code here
  
  
  // أخيراً نقوم بتحرير الذاكرة المرتبطة بالنتيجة
  $result->close();
}

// هنا نقوم بإغلاق الإتصال الذي فتحناه مع قاعدة البيانات
$mysqli->close();
?>

يُمكنك الإطلاع على التوثيق الرسمي: إضغط هنا

كما يُمكنك أيضا إستخدام PDO التي تعني PHP Data Objects و تُعتبر إضافة تُعرف واجهة خفيفة للتعامل مع قواعد البيانات المُختلفة و تُوفر هذه الإضافة طبقة تجريد للوصول إلى البيانات يعني أنك ستستخدم نفس الدوال في مُختلف أنواع أنظمة قواعد البيانات ك MySQL و غيرها.

بالتوفيق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...