Abdelrahman Mostafa10 نشر 12 ديسمبر 2023 أرسل تقرير مشاركة نشر 12 ديسمبر 2023 كنت أعمل على مشروع To-do list بلغة PHP وعند تطوير ميزة تصفية المهام بناءًا على حالتها مثل قيد التنفيذ أو مكتملة وهكذا، وكتبت الكود التالي: public static function get($table, $where = null) { $queryStr = "SELECT * FROM {$table}"; if(is_array($where)) { $queryStr .= " WHERE " . implode(' ', $where); } $query= self::$pdo->prepare($queryStr); return $query->fetchAll(\PDO::FETCH_OBJ); } ولكن اختفت كل المهمام، فما المشكلة، أرفقت مجلد المشروع. php.zip اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Khaled Osama3 نشر 12 ديسمبر 2023 أرسل تقرير مشاركة نشر 12 ديسمبر 2023 المشكلة في طريقة إضافة الشرط (WHERE clause) إلى الاستعلام و ليست آمنة. عند استخدام implode() سيتم إضافة الشروط دون علامات الاقتباس مما يجعل الاستعلام غير صالح. الحل هو استخدام طريقة أخرى لإضافة الشرط مثل: $where = '1=1'; // دائما TRUE if(is_array($where_conditions)) { $where_parts = []; foreach($where_conditions as $field => $value) { $where_parts[] = "{$field} = '{$value}'"; } $where .= ' AND ' . implode(' AND ', $where_parts); } $queryStr = "SELECT * FROM {$table} WHERE {$where}"; هذا التعديل يضيف تكوينًا صحيحًا للشرط في حالة وجود مصفوفة لتصفية المهام. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Abdelrahman Mostafa10
كنت أعمل على مشروع To-do list بلغة PHP وعند تطوير ميزة تصفية المهام بناءًا على حالتها مثل قيد التنفيذ أو مكتملة وهكذا، وكتبت الكود التالي:
ولكن اختفت كل المهمام، فما المشكلة، أرفقت مجلد المشروع.
php.zip
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.