سؤال

العمل مع MySQL مؤخرًا ، من PHP ، أتساءل عن هذا:

  • ما هو تأثير الأداء باستخدام mysql_real_escape_string() عدة مرات في البرنامج النصي؟
  • هل يستحق محاولة تقليل عدد المكالمات إلى هذه الوظيفة لنص معين؟
  • هل يحدد مجموعة حرف الاتصال في كل مرة يتم استدعاؤها ، أو يتم تخزين هذه القيمة؟

إذا كانت هناك حاجة إلى سيناريو ، فأنا أفكر في PHP ، والتمييز بين النص والأرقام ، حيث الأرقام (باستخدام intval(), floatval() أو يلقي المباشر) يمكن تضمينه بدون مكالمة.

هل كانت مفيدة؟

المحلول

لا تكون قرشًا وحكيمة.

أسئلتك في عالم الأمراض الصغيرة. إن إنشاء فهرس مطلوب أو تخزين مؤقت لبعض نتائج الاستعلام سيكون له فائدة أكبر من الحجم من القلق بشأن تأثير أداء بعض المكالمات على mysql_real_escape_string().

بالمناسبة ، مع تكوين مع (int) $variable أسرع قليلاً من الاتصال intval($variable). لكن هذا سيكون أيضًا تحسينًا صغيرًا.

نصائح أخرى

إذا كنت بحاجة إلى الهروب من إدخال المستخدم قبل إدخال قاعدة البيانات ، فسيتعين عليك استخدامه mysql_real_escape_string() ... لا تقلق كثيرًا بشأن التحسين السابق لأوانه.

بدلاً من ذلك ، يمكنك البحث في عبارات معدّة والتي ستوفر لك الاتصال بهذه الوظيفة عدة مرات - وهي أكثر أمانًا لأنها تفصل بين منطق SQL عن إدخال المستخدم تمامًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top