:: vBspiders Professional Network ::

:: vBspiders Professional Network :: (http://www.vbspiders.com/vb/index.php)
-   SQL قواعد البيانات (http://www.vbspiders.com/vb/f133.html)
-   -   حل مشكلة Illegal mix of collations for operation 'UNION' (http://www.vbspiders.com/vb/t32297.html)

Black-FoG 07-11-2010 11:46 PM

حل مشكلة Illegal mix of collations for operation 'UNION'
 
[align=right]
[align=right]

السلام عليكم ورحمة الله


من مدة ما نزلت موضوع واليوم جبت لكم موضوع مهم :


بعض الأحيان يلاحظ البعض ان حقنته تكون صحيحة ولكن عند حقن طلب لعمود من جدول يظهر الخطأ

كود:

Illegal mix of collations for operation 'UNION'





سبب الخطأ باختصار ان العمود في الاستعلام الأصلي "قبل union" يختلف التشفير او encode فيه عن العمود الذي تستغله انت "بعد union" فيكون الأول مثلاً بشفرة utf8 والثاني latin1 وهكذا

والحل هو تحويل العمود الذي تستغله انت الى النمط المعرف للعمود المقابل له في استعلام ماقبل union

للتحويل نستخدم دالة convert

مثال: لو فرضنا ان العمود في استعلام ماقبل union معرف على شفرة utf8 وكان العمود الذي تحقنه latin1 فسيظهر الخطأ السابق, والتحويل كالتالي:


كود:

union select convert(column using utf8) from table

بحيث column العمود المراد تحويله
table الجدول
ولاتنسى كتابة ارقام الاستغلال الأخرى قبل او بعد هذا العمود حسب حقنتك

وفي حال كان الترميز latin1



كود:

CONVERT(asd USING latin1)

قد يكون الترميز ascii بعض الأحيان فيكون التحويل :

كود:

CONVERT(asd USING ascii)

ولاداعي لأن تخشى عدم معرفتك لنوع التشفير المطلوب التحويل اليه ... يكفي تجريب التحويل الأول ومن ثم الثاني واحدهما سينجح معك باذن الله



بالتوفيق يا شباب


Adiooooos
[/align]
[/align]

D-GhosT s3cur!Ty-Z 07-12-2010 12:34 AM

بارك الله فيك اخي

شرح رائع جدا

تقبل مروري

z3r0 b0mb3r 07-12-2010 12:43 AM

مشكورررررررررر يامبدع
بارك الله فيك والي الامام أخي

عبد الله ر 07-30-2010 12:27 AM

الله يعطيك الف عافية
والله هالمشكلة صادفتني وان شاء الله هذا حلها

Master vbspiders 07-30-2010 12:46 AM

[align=center]الطريقة ناجحة 100%...
بارك الله فيك وننتظر جديدك
تحياني
[/align]


الساعة الآن 01:11 AM


[ vBspiders.Com Network ]


SEO by vBSEO 3.6.0