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

السؤال

نشر

أحاول استرجاع بيانات باستخدام 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
نشر

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

$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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...