البرمجة

استرداد البيانات باستخدام تعبيرات SQL المعدة مسبقًا في PHP

عند استخدام تعبيرات SQL مع قواعد البيانات في PHP، يمكنك استخدام التعبيرات المعدة مسبقًا (Prepared Statements) لتنفيذ استعلامات SQL بشكل آمن وفعال، وذلك باستخدام دالة prepare لتحضير الاستعلام ومن ثم استخدام execute لتنفيذه. ومن الهام فهم كيفية الحصول على النتائج بعد تنفيذ استعلام SQL من نوع SELECT.

في الكود الذي قدمته، يتم استخدام تعبير SQL SELECT لاسترداد بيانات معينة من جدول الفواكه في قاعدة البيانات. بعد تنفيذ الاستعلام باستخدام execute، يمكنك الوصول إلى البيانات المسترجعة باستخدام الدالة fetchAll أو fetch على كائن الاستعلام $sth. ستعيد هذه الدوال البيانات بتنسيق معين حسب الاختيار الذي تقوم به.

للاستعلامات التي تسترد بيانات متعددة، مثل SELECT، يمكنك استخدام fetchAll لاسترداد كل الصفوف بشكل مرة واحدة. بينما يمكنك استخدام fetch لاسترداد كل صف بشكل فردي عند الحاجة. يمكن استخدام حلقة للوصول إلى جميع الصفوف المسترجعة.

إليك كيفية تنفيذ هذا في الكود الخاص بك:

php
$calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->execute(array(':calories' => $calories, ':colour' => $colour)); // استرداد كل الصفوف في مصفوفة متعددة $rows = $sth->fetchAll(PDO::FETCH_ASSOC); // تحقق مما إذا كان هناك صفوف تم استردادها if ($rows) { // يمكنك القيام بما تشاء مع الصفوف المسترجعة هنا foreach ($rows as $row) { echo "Name: " . $row['name'] . ", Colour: " . $row['colour'] . ", Calories: " . $row['calories'] . "
"
; } } else { echo "No rows returned."; } ?>

في هذا المثال، يتم استرداد كل الصفوف باستخدام fetchAll ووضعها في مصفوفة متعددة $rows، ثم يتم التحقق مما إذا كانت المصفوفة غير فارغة قبل طباعة البيانات. إذا لم يتم استرداد أي صفوف، يتم عرض رسالة توضيحية.

المزيد من المعلومات

بالطبع، هنا بعض المعلومات الإضافية حول استخدام تعبيرات SQL المعدة مسبقًا في PHP وكيفية الحصول على البيانات المسترجعة:

  1. استخدام معلمات مع تعبيرات SQL المعدة مسبقًا: في الكود الذي قدمته، يتم استخدام معلمات :calories و :colour كجزء من الاستعلام. هذه المعلمات تسمح بتعيين قيم محددة عند تنفيذ الاستعلام باستخدام execute، مما يسمح بتجنب تعرض التطبيق لهجوم حقن SQL (SQL Injection) ويجعل الاستعلام أكثر أمانًا.

  2. استرداد البيانات باستخدام fetchAll و fetch: يتم استخدام fetchAll لاسترداد كل الصفوف المسترجعة في مصفوفة متعددة، بينما يستخدم fetch لاسترداد صف واحد في كل مرة. يمكن تحديد نوع البيانات المسترجعة باستخدام ثوابت مثل PDO::FETCH_ASSOC لاسترداد مصفوفة متعددة ذات الأسماء، أو PDO::FETCH_NUM لاسترداد مصفوفة متعددة بالفهارس فقط، أو PDO::FETCH_BOTH لاسترداد مصفوفة متعددة تحتوي على الأسماء والفهارس.

  3. التعامل مع النتائج الفارغة: يجب دائمًا التحقق من ما إذا كان هناك صفوف تم استردادها قبل تجاوز البيانات المسترجعة. إذا كانت النتيجة فارغة، فيجب على المطور التعامل مع هذا السيناريو بشكل مناسب، سواء عن طريق عرض رسالة للمستخدم أو اتخاذ إجراءات أخرى.

  4. الاستفادة من بيانات الصفوف المسترجعة: بعد استرداد البيانات، يمكنك استخدامها كما تشاء داخل التطبيق. يمكنك عرضها في واجهة المستخدم، أو معالجتها بشكل ديناميكي، أو حفظها في قاعدة بيانات أخرى، وما إلى ذلك.

باستخدام تعبيرات SQL المعدة مسبقًا في PHP، يمكنك تنفيذ استعلامات SQL بشكل آمن وفعال واسترداد البيانات بسهولة للاستفادة منها في التطبيقات الخاصة بك.

مقالات ذات صلة

زر الذهاب إلى الأعلى

المحتوى محمي من النسخ !!