mysql 5.5 - How should I properly store and retrieve IPs? -


मेरे पास एक कॉलम उपयोगकर्ता है > उपयोगकर्ता प्रकार VARCHAR (15) से। मैं इसे में एक अवधि सम्मिलित कर सकता हूँ:

  INJECT IN 'एलजे`। यूज़र (`उपयोगकर्ता') VALUES ('।')   

अब मैं इस अवधि की खोज करना चाहता हूं:

  SELECT * से 'उपयोगकर्ता' जहां 'उपयोगकर्ता' की तरह '।'   

या <पूर्व> SELECT * से 'उपयोगकर्ता' जहां 'उपयोगकर्ता' = '।'

दोनों ही मामलों में, मौजूदा प्रविष्टि नहीं मिली है:

MySQL ने एक खाली परिणाम सेट (अर्थात शून्य पंक्तियाँ) लौटाया। (क्वेरी को 0.0001 सेकंड लिया गया)

अल्पविराम के साथ एक ही समस्या।

असल में, मेरा इरादा आईपी पते को 125.50.75.80 जैसे स्टोर करना है, लेकिन मैंने उबला हुआ एक विराम चिह्न के लिए खोज करने में असमर्थता नीचे समस्या मैंने कोशिश की '\।' भी कोई लाभ नहीं।

और यह literals के साथ एक समस्या है; समय के साथ स्ट्रिंग युक्त वेरिएबल्स के साथ क्या करना है?

अद्यतन: मैंने टेबल के साथ कमांड लाइन में बनाए गए डेटाबेस में परीक्षण किया है:

  बनाओ टेबल एलजे। यूज़र (उपयोगकर्ता VARCHAR (15));   

और सबकुछ ठीक काम करती है मुझे संदेह है कि मेरे डेटाबेस में phpMyAdmin के साथ कुछ गलत है:

आपके VARCHAR कॉलम के साथ वर्तमान मुद्दा एक ऐसा कॉलेट प्रकार है जिसका उपयोग आप armscii8_general_ci का उपयोग कर रहे हैं जो कुछ संग्रहीत वर्णों जैसे कि अल्पविराम और डॉट को धर्मान्तरित करते हैं।

शायद आप utf8_general_ci का प्रयोग करना चाहते थे जो आपकी इच्छित परिणाम देगा:


दो आईपीवी 4 को स्टोर करने के लिए VARCHAR का उपयोग नहीं करें, INT अहस्ताक्षरित का उपयोग करें और फिर आप IPv4 की वापसी / डालने / तुलना करने के लिए उपयोग और कार्य कर सकते हैं।

  टैब उपयोगकर्ताओं को बनाएँ (user_ip INT अहस्ताक्षरित);   

फिर आप उपयोग करेंगे एक आईपीवी 4 को शामिल करने के लिए:

  उपयोगकर्ता (user_ip) मूल्यों में INSERT (INET_ATON ('125.50.75.80'));   

तब आप इसे इस तरह पढ़ सकते हैं:

  चुनें INET_NTOA (user_ip) उपयोगकर्ताओं से जहां यूज़र_प = INET_ATON ('125.50.75.80')   



Comments

Popular posts from this blog

php - How can I cram 6+31 numeric characters into 22 alphanumeric characters? -

mysql - where clause in inner join query -

java - Why my included JSP file won't get processed correctly? -