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

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...