كيفية تنفيذ عمليات البحث والاستعلامات في PHP

تُعتبر عمليات البحث والاستعلامات من أهم المهام عند التعامل مع قواعد بيانات MySQL في تطبيقات الويب. باستخدام PHP، يمكنك تنفيذ استعلامات مختلفة للبحث عن البيانات أو استرجاعها بطرق متعددة. في هذا المقال، سنتعرف على كيفية تنفيذ عمليات البحث والاستعلامات في PHP مع أمثلة عملية باستخدام MySQLi وPDO.

الاتصال بقاعدة بيانات MySQL باستخدام PHP

قبل أن نتمكن من تنفيذ عمليات البحث والاستعلامات، يجب أولاً الاتصال بقاعدة البيانات. يمكننا القيام بذلك باستخدام MySQLi أو PDO. المثال التالي يوضح كيفية الاتصال بقاعدة البيانات باستخدام MySQLi:


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

# إنشاء اتصال بقاعدة البيانات
$conn = new mysqli($servername, $username, $password, $dbname);

# التحقق من الاتصال
if ($conn->connect_error) {
   die("فشل الاتصال: " . $conn->connect_error);
}
echo "تم الاتصال بقاعدة البيانات بنجاح";
?>

تنفيذ عمليات البحث والاستعلامات باستخدام MySQLi

يمكنك تنفيذ عمليات البحث والاستعلامات باستخدام MySQLi بإحدى الطريقتين: الطريقة الإجرائية أو البرمجة الكائنية. سنوضح هنا كيفية تنفيذ استعلام SQL للبحث عن بيانات المستخدمين باستخدام الطريقة الإجرائية:


<?php
# إعداد استعلام SQL
$sql = "SELECT id, username, email FROM users WHERE username LIKE '%John%'";

# تنفيذ الاستعلام
$result = $conn->query($sql);

# التحقق من وجود نتائج
if ($result->num_rows > 0) {
   # عرض النتائج
   while ($row = $result->fetch_assoc()) {
      echo "ID: " . $row['id'] . " اسم المستخدم: " . $row['username'] . " البريد الإلكتروني: " . $row['email'] . "
"
;
   }
} else {
   echo "لم يتم العثور على نتائج";
}
?>

تنفيذ عمليات البحث والاستعلامات باستخدام PDO

PDO هو خيار آخر لتنفيذ عمليات البحث والاستعلامات. يتيح لك PDO استخدام العبارات المجهزة (Prepared Statements) والتي تساعد في حماية تطبيقك من هجمات SQL Injection. في المثال التالي، سنوضح كيفية تنفيذ استعلام بحث باستخدام PDO:


<?php
# إعداد الاتصال بقاعدة البيانات باستخدام PDO
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

try {
   $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
   # إعداد نمط الخطأ
   $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

   # إعداد العبارة المجهزة
   $stmt = $conn->prepare("SELECT id, username, email FROM users WHERE username LIKE :searchTerm");

   # ربط المعاملات
   $searchTerm = '%John%';
   $stmt->bindParam(':searchTerm', $searchTerm, PDO::PARAM_STR);

   # تنفيذ العبارة
   $stmt->execute();

   # جلب النتائج
   $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

   # عرض النتائج
   if (count($result) > 0) {
      foreach ($result as $row) {
         echo "ID: " . $row['id'] . " اسم المستخدم: " . $row['username'] . " البريد الإلكتروني: " . $row['email'] . "
"
;
      }
   } else {
      echo "لم يتم العثور على نتائج";
   }
} catch (PDOException $e) {
   echo "خطأ: " . $e->getMessage();
}
?>

التعامل مع الأخطاء أثناء تنفيذ الاستعلامات

من المهم التعامل مع الأخطاء المحتملة أثناء تنفيذ الاستعلامات لضمان استقرار التطبيق. سواء كنت تستخدم MySQLi أو PDO، يمكن استخدام الكتل الشرطية if أو try-catch للتحقق من نجاح الاستعلام والتعامل مع أي أخطاء قد تحدث.

إغلاق الاتصال بقاعدة البيانات

بعد الانتهاء من تنفيذ الاستعلامات، من المهم إغلاق الاتصال بقاعدة البيانات لتحرير الموارد. في MySQLi، يتم إغلاق الاتصال باستخدام mysqli_close()، بينما في PDO يتم ذلك بإسناد null إلى متغير الاتصال.


<?php
# إغلاق الاتصال بقاعدة البيانات في MySQLi
mysqli_close($conn);

# إغلاق الاتصال بقاعدة البيانات في PDO
$conn = null;
?>

الخلاصة

تنفيذ عمليات البحث والاستعلامات في PHP هو جزء أساسي من تطوير تطبيقات الويب الديناميكية. سواء كنت تستخدم MySQLi أو PDO، يمكنك تنفيذ استعلامات فعّالة وآمنة للوصول إلى البيانات المطلوبة من قاعدة بيانات MySQL. تأكد دائمًا من التعامل مع الأخطاء بشكل صحيح وإغلاق الاتصال بقاعدة البيانات بعد الانتهاء لضمان أداء مستقر وفعّال لتطبيقك.