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

لا يمكن الاستعلام باستخدام MySQL بالشكل المطلوب

Mohammad Yousef3

السؤال

أحاول استرجاع بيانات باستخدام MySQL

$username = $_POST['username'];
$password = $_POST['password'];

$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}

ولكن يظهر هذا الخطأ

اقتباس

MySQL_fetch_array() expects parameter 1 to be resource, boolean given

 

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

Recommended Posts

  • 0

قد تحدث أخطاء أثناء الاستعلام من قواعد البيانات ومنها:

  • لا توجد بيانات مطابقة للاستعلام
  • خطأ بالاتصال بقاعدة البيانات, وما إلى ذلك

ولا يمكن قراءة البيانات عند حدوث مثل هذه الأخطاء:

بتاريخ 43 دقائق مضت قال Mohammad Yousef3:

$row = mysql_fetch_array($result)

لذلك يجب التأكد من أنّ قيمة $result  ليست false, وبذلك يمكن قراءة نتيجة الاستعلام

$username = $_POST['username'];
$password = $_POST['password'];

$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE $username");
if($result === FALSE) { 
    die(mysql_error()); // اجراءات عند حدوث مشاكل في الاستعلام
}

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}

 

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

  • 0

hi, sorry for writing with English, but i don't have arabic keyboard,

in PHP

if you are using the exact code like in the example, i want to tell you the you can not use $ dollar sign with single qutation, ( ' ), you have to use dubble qutation ( " ). i hope the answe is clear

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

  • 0

يمكنك تغيير السطر التالي بحيث تستطيع وضع المتغير إلى الاستعلام 

$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE $username");

إلى السطر التالي 

$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE " . $username . "");

ومن ثم التأكد من الأتصال بقاعدة البيانات , و التأكد من الجدول الذي سيتم إحداث تغييرات بداخله.

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

  • 0

إضافة إلى ما تم ذكره في التعليقات أعلاه، دوال _mysql لم تعد مستخدمة لأن بها العديد من مشاكل الحماية، يٌفضل الإنتقال إلى دوال _mysqli أو إستخدام PDO:

مثال عن إستخدام mysqli:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, firstname, lastname FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?>

مثال عن إستخدام PDO:

<?php
try {
  $host = "your_host";
  $dbname = "your_database";
  $user = "your_user";
  $pass = "your_pass";
  $dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
  
  $category_id = 9;
  $statement = $dbh->prepare("SELECT * FROM posts WHERE category_id = ?");
  $statement->execute([$category_id] );
  // get all:
  $rows = $statement->fetchAll();
}
catch(PDOException $e) {
  echo  $e->getMessage(); // handle this better, this is just for the demo!
}

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...