Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP- तैयार बयानों का उपयोग करके mysql में बाइनरी डेटा डालना

PHP का sha1 फ़ंक्शन एक हेक्स संख्या का एक स्ट्रिंग प्रतिनिधित्व देता है।

इसका मतलब यह है कि यदि आप इसे स्क्रीन पर प्रिंट करते हैं, तो यह एक हेक्स नंबर प्रदर्शित करेगा। लेकिन स्मृति में, यह ASCII वर्णों का एक समूह है।

तो, हेक्स नंबर लें 1A2F . स्मृति में ASCII के रूप में 0x31413246 . होगा , के बजाय 0x1A2F

MySQL का सामान्य इंटरफ़ेस सभी तर्कों को तार के रूप में भेजता है। सामान्य इंटरफ़ेस का उपयोग करते समय, MySQL ASCII स्ट्रिंग को बाइनरी मान में बदल देगा।

नई तैयार स्टेटमेंट विधि सब कुछ बाइनरी के रूप में भेजती है। तो आपका "1A2F" का अच्छा मूल्य अब 0x31413246 के रूप में भेजा जाएगा और कॉलम में डाला जाएगा। - स्रोत:dev.mysql.com - तैयार बयान

इसके बजाय, अपने हेक्स स्ट्रिंग को बाइनरी स्ट्रिंग में पैक करके परिवर्तित करें:

$binId = pack("H*", $id); // this string is not ASCII, don't print it to the screen! That will be ugly.

और फिर $binId . पास करें $id के बजाय MySQLi ने स्टेटमेंट तैयार किया।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि कोड:1005. तालिका '...' नहीं बना सकता (त्रुटि:150)

  2. INSERT INTO में सुधार कैसे करें ... लॉकिंग व्यवहार का चयन करें

  3. java.sql.SQLException:गलत स्ट्रिंग मान:'\xF0\x9F\x91\xBD\xF0\x9F...'

  4. MySQL IF ELSEIF चुनिंदा क्वेरी में

  5. एसक्यूएल ड्रॉप टेबल सिंटेक्स - डीबीएमएस द्वारा सूचीबद्ध