"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يُرجع بيان PDO المُعد الخاص بي نتائج مزدوجة عند جلب البيانات إلى ملف CSV؟

لماذا يُرجع بيان PDO المُعد الخاص بي نتائج مزدوجة عند جلب البيانات إلى ملف CSV؟

تم النشر بتاريخ 2024-11-08
تصفح:730

Why is my PDO prepared statement returning double results when fetching data into a CSV file?

البيان المعد لشركة تنمية نفط عمان يجلب نتائج مزدوجة

واجه المستخدم مشكلة حيث أن بيان شركة تنمية نفط عمان المعد يعرض نتائج مزدوجة عند إخراج البيانات إلى ملف CSV. يستخدم الكود المعني الدالة $result_get_rows->fetch() لاسترداد الصفوف من قاعدة البيانات.

فهم طريقة الجلب ()

الجلب () يتم استخدام أسلوب كائن PDOStatement لاسترداد الصفوف من مجموعة النتائج. بشكل افتراضي، تقوم بإرجاع الصفوف كمصفوفات مفهرسة (حسب رقم العمود) ومصفوفات ترابطية (حسب اسم العمود).

حل المشكلة

لتصحيح النتائج المزدوجة يوصى بتحديد كيفية إرجاع صفوف النتائج باستخدام المعلمة fetch_style الخاصة بطريقة الجلب (). تقبل هذه المعلمة أحد الثوابت التالية:

  • PDO::FETCH_ASSOC: إرجاع مصفوفة اقتران مفهرسة حسب اسم العمود.
  • PDO::FETCH_NUM: إرجاع مصفوفة مفهرسة مفهرسة حسب العمود number.
  • PDO::FETCH_BOTH (افتراضي): إرجاع مصفوفة مفهرسة بواسطة كل من اسم العمود والعمود الرقم.

الكود المعدل

باستخدام PDO::FETCH_ASSOC، يمكن تعديل الكود على النحو التالي:

while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) {
  $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n";
}
سيضمن هذا التعديل إرجاع الصفوف كمصفوفات ترابطية، مما يمنع بشكل فعال تكرار القيم عند الإخراج إلى ملف CSV.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3