2009-01-03 18 views
12

मैं एक MySQL ब्लॉब कॉलम में एक बहुत लंबी टेक्स्ट स्ट्रिंग डालने का प्रयास कर रहा हूं, लेकिन MySQL केवल डेटा के 64kB को सहेज रहा है। स्ट्रिंग 75360 वर्ण लंबी है। मैं PHP के mysql_connect() से कनेक्ट कर रहा हूं।मेरे MySQL डेटा कॉलम में केवल 64kB डेटा क्यों सहेजा जा रहा है?

कोई विचार?

यदि यह ब्लॉब या टेक्स्ट है तो इससे कोई फर्क पड़ता है। मैं मूल रूप से इसे एक पाठ के रूप में था लेकिन इसे बिना किसी प्रभाव के बदल दिया।

उत्तर

30

क्योंकि यह बीएलओबी कॉलम का maximum size है। आपको मेडियमब्लॉग/लोंगब्लॉब या मेडियम/LONGTEXT का उपयोग करने की आवश्यकता है।

0

ब्लॉब स्तंभ प्रति the documentation

केवल 64KB एक mediumblob कॉलम आपको उसके टाइप का प्रयास है ...

+0

क्यों यह एक गुमनाम downvote आकर्षित करने के लिए उत्सुक हैं? –

6

MySQL में एक BLOB प्रकार 65,534 बाइट्स तक जमा कर सकते हैं, अगर आप ज्यादा इस से भी अधिक स्टोर करने के लिए कोशिश डेटा MySQL डेटा को छोटा कर देगा। MEDIUMBLOB 16,777,213 बाइट्स तक स्टोर कर सकता है, और LONGBLOB 4,294,967,292 बाइट तक स्टोर कर सकता है।

यदि आप सख्त SQL मोड (MySQL modes) सक्षम करते हैं तो आपको कॉलम प्रकार में फ़िट नहीं होने वाले डेटा को स्टोर करने का प्रयास करते समय आपको एक त्रुटि मिलेगी।

2

आपने यह भी पूछा कि क्या बीएलओबी और टेक्स्ट
के बीच कोई अंतर है या नहीं, BLOBS बाइनरी डेटा के लिए हैं। यदि आप किसी BLOB फ़ील्ड पर एक LIKE क्वेरी करते हैं तो यह केस संवेदनशील होगा।

अर्थात

SELECT 'TEXT' LIKE 'TEXT'; 
=> 1 for both BLOB and TEXT 

SELECT 'TEXT' LIKE 'text'; 
=> 1 for TEXT 
=> 0 for BLOB 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^