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

पदावनत mysql_* कार्यों के साथ पुराने mysql-php कोड को सफलतापूर्वक फिर से कैसे लिखें?

वास्तव में, एक सरल, मधुर और संक्षिप्त:हाँ, अब और आवश्यक नहीं है।

आइए कोड की समीक्षा करें कि हमने कुछ खोया नहीं है:

  • __construct - कंस्ट्रक्टर में केवल सभी कॉन्फ़िगरेशन शामिल थे। यहां पीडीओ की अवधारणा बहुत आसान है, एक कनेक्शन स्ट्रिंग जिसमें सबसे अधिक जानकारी होती है:

     mysql:host=127.0.0.1;dbname=people;charset=UTF-8
    

    इसके अलावा पीडीओ कंस्ट्रक्टर को रेडी-मेड उपयोग के लिए प्रदान करता है, इसलिए डबल आवश्यक नहीं है।

  • connect - कनेक्शन फ़ंक्शन अब भी आवश्यक नहीं है। यह पहले से ही पीडीओ को तत्काल करके किया जाता है। आप अपवाद देख सकते हैं, PHP मैनुअल में एक उदाहरण है इसके कंस्ट्रक्टर पेज पर

  • selectDb - इस जटिल कार्य की भी अब आवश्यकता नहीं है। वाह, तीसरा फ़ंक्शन जिसे हम पीडीओ कनेक्शन स्ट्रिंग के कारण छोड़ सकते हैं। इतने कम पात्रों के साथ बहुत शक्ति। चीयर्स!

  • __destruct - विनाशक। आइए निष्पक्ष रहें:MySQL को भी इसकी आवश्यकता नहीं थी। हालांकि पीडीओ के साथ हम इसे मुफ्त में प्राप्त करते हैं - बिना कोड की एक भी पंक्ति लिखे।

अछा लगता है! आप पुराने कोड को हटाकर उस अस्पष्ट डेटाबेस वर्ग से पीडीओ में माइग्रेट करने में कामयाब रहे! बधाई हो:

$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');

यदि आप अब सोचते हैं, तो क्या होगा यदि मैं स्वयं डेटाबेस वर्ग रखना चाहता हूँ? वैसे आप ऐसा कर सकते हैं, क्योंकि आप पीडीओ से विस्तार कर सकते हैं (हाँ यह काम करता है!):

class DB extends PDO
{
   ... my super-new-shiny-code
}

आप ऐसा क्यों करना चाहेंगे? कोई विचार नहीं, लेकिन शायद यह आपके कोड के लिए अधिक धाराप्रवाह है। यदि आप एक बेहतर कोड-उदाहरण की तलाश में हैं, तो मेरे पास PHP/MySQL टेबल हाइपरलिंक के साथ है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या सभी टेक्स्ट-आधारित फ़ील्ड के लिए जेनेरिक वर्चर (255) का उपयोग करने के नुकसान हैं?

  2. त्रुटि:क्लाइंट सर्वर द्वारा अनुरोधित प्रमाणीकरण प्रोटोकॉल का समर्थन नहीं करता है; MySQL क्लाइंट को अपग्रेड करने पर विचार करें

  3. MySQL में MID () फ़ंक्शन कैसे काम करता है

  4. RowDataPacket ऑब्जेक्ट का उपयोग कैसे करें

  5. MySQL - MySQL का यह संस्करण अभी तक 'LIMIT &IN/ALL/ANY/SOME सबक्वेरी' का समर्थन नहीं करता है