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

क्या पीडीओ ... सेट नाम utf8 खतरनाक है?

क्या आप वाकई अभी भी PHP>=संस्करण 3.6 और <5.3.6 का उपयोग कर रहे हैं?

मान लें कि आपके पास 5.3.6 या बाद का संस्करण है...

चरित्र सेट और PDO_MYSQL DSN कहें कि आपको उपयोग करना चाहिए

$pdo = new PDO("mysql:host=localhost;dbname=mydb;charset=utf8",
               'my_user', 'my_pass');

और इसका अर्थ है (स्पष्ट रूप से पर्याप्त नहीं) कि utf8 utf8mb4 . द्वारा प्रतिस्थापित किया जाना चाहिए यदि उपयुक्त हो।

PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' उतना अच्छा नहीं है, लेकिन 5.3.6 से पहले का विकल्प था।

मुझे लगता है कि "खतरनाक" बहुत मजबूत शब्द है, यहां तक ​​कि पूर्व-5.3.6 भी।

एक संबंधित तकनीक:init_command = SET NAMES ... . का उपयोग करना my.cnf . में खराब है क्योंकि init_command root . के रूप में कनेक्ट होने पर निष्पादित नहीं किया जाता है ।

utf8mb4 पसंदीदा है CHARACTER SET UTF-8 के लिए क्योंकि इसमें इमोजी और कुछ चीनी अक्षर शामिल हैं जो utf8 . से गायब थे . वह वर्णमाला MySQL संस्करण 5.5.3 से शुरू होकर उपलब्ध है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में सम्मिलित, हटाए गए टेबल्स (मैजिक टेबल्स)

  2. जंग:mysql से ध्रुवों में डेटाफ़्रेम पढ़ें

  3. NHibernate सम्मिलित करेगा लेकिन mysql चलाने वाले साझा सर्वर के साथ होस्ट करने के लिए स्थानांतरित होने के बाद अपडेट नहीं होगा

  4. SQL सर्वर 2005 से MySQL में डेटा कैसे निर्यात करें

  5. MySQL डायनेमिक लिंक सही पंक्ति लाने के लिए