MySQL_Real_escape_string يقوم بتخزين البيانات في قاعدة البيانات جنبًا

StackOverflow https://stackoverflow.com/questions/2833831

سؤال

عندما أستخدم mysql_real_escape_string على سلاسلاتي غير المقيدة ، يتم تخزين البيانات الموجودة في قاعدة البيانات باستخدام lackslashes التي لا ينبغي أن تحدث.

لدي Magic_Quotes_GPC غير متأكد من سبب حدوث ذلك. اي فكرة ؟

هل هناك أي إعداد في قاعدة بيانات MySQL التي يجب تعديلها.

أنا لا أستخدم AddSlashes في أي مكان في الكود. لغة PHP.

الرجاء المساعدة.

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

المحلول

هناك العديد من المتغيرات من Magic_quotes وكلها غازية للغاية ولا يمكن تجاوزها. أعتقد أنه من غير المحتمل أن يتم القيام بهذا الهروب الإضافي بواسطة DBMs.

هل راجعت كيف تبدو البيانات قبل تطبيق mysql_real_escape_string () - أود أن أراهن أنه هرب بالفعل بطريقة ما.

جيم

نصائح أخرى

الجواب بسيط. لا يوجد إعداد في قاعدة بيانات MySQL التي يجب تعديلها. إنه الرمز/الإعدادات الخاصة بك.

إما أن لديك magic_quotes_gpc على ذلك ويجب التحقق منه ، أو بعض الكود الخاص بك يقوم بقطع آخر.

stripslashes () هو عندما يكون التوجيه php magic_quotes_gpc قيد التشغيل (إنه بشكل افتراضي) ، وأنت لا تقوم بإدخال هذه البيانات في مكان (مثل قاعدة البيانات) يتطلب الهروب. على سبيل المثال ، إذا كنت ببساطة إخراج البيانات مباشرة من نموذج HTML.

<?php
$str = "Is your name O\'reilly?";

// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>

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

نظرًا لأنك قد أخبرت أنه بدون تطبيق MySQL_Real_escape_String ، يتم تخزين بياناتك دون أي Blackslashes ... وبعد تطبيقها تحصل على Blackslash ... أشعر شخصيًا بالتحقق من الرمز الخاص بك سواء كنت تتقدم بإضافة Levslashes بعض المكان.

بعض الأسئلة...

  1. هل يحدث هذا فقط في هذه الوظيفة الحالية.
  2. تحقق من magic_quotes_gpc الخاص بك أو إيقاف تشغيله.
  3. هل يمكنك نشر جزء من هذه الوظيفة التي تسبب هذه المشكلة.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top