- आपके पास दुनिया में हर समय है क्योंकि वे कभी भी काम नहीं करना बंद कर देंगे!
- हां, ऐसा करने के कई तरीके हैं।
- हां, लेकिन कोई भी आकार-फिट नहीं है-सभी समाधान। हर स्थिति अलग है और आपके लिए क्या उचित है हर स्थिति के लिए विशेष स्थिति उचित नहीं हो सकती है।
पहले, वर्ष ext/mysql PHP 5.5.0 के रूप में हटा दिया गया है, लेकिन यह विस्तार ही अंततः PHP PECL repository (में ले जाया जाएगा के रूप में पूरी तरह से काम करना बंद कर कभी नहीं होगा जब यह समय आता है इसे हटाने के लिए)। हालांकि, हम अभी तक नहीं हैं और आप केवल तब प्रभावित हो सकते हैं जब आपने PHP के उस संस्करण में अपग्रेड करना चुना था। एक्सटेंशन को हटाने के लिए कोई सटीक समय निर्धारित नहीं है।
दूसरा, आप डेटाबेस कनेक्शन को संग्रहीत करने के लिए एक चर का उपयोग कर सकते हैं जैसे पुराने एक्सटी/mysql एक्सटेंशन दृश्यों के पीछे आपके लिए कर रहा था। चाल यह थी कि आप यह नहीं जानते थे कि यह क्या कर रहा था (यह आपके द्वारा बनाए गए अंतिम खुले कनेक्शन का उपयोग करता है जब आप mysql_connect कहते हैं और इसका उपयोग तब भी करता है जब आप डेटाबेस तक पहुंचने के लिए mysql_query जैसे कुछ कहते हैं)।
आप प्रक्रियात्मक शैली का उपयोग कर अपने समारोह में एक स्थिर चर के साथ ऐसा कर सकते हैं ....
function openDBConn() {
static $link;
if (!isset($link)) {
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
}
return $link; // returns the link
}
या आप OOP का उपयोग कर एक कक्षा स्टेटिक चर के साथ ऐसा कर सकते हैं ...
Class MyDBConnect {
public static $link;
public function openDBConn() {
if (!isset(static::$link)) {
static::$link = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
}
}
}
मैं आपको नए एपीआई का उपयोग करने के लिए प्रोत्साहित करना चाहता हूं और मैं इसके लिए आपको सराहना करता हूं, लेकिन जब भी आप आगे बढ़ते हैं तो भी मैं आपको सावधान करना चाहता हूं। जब आप पुराने कार्यों/mysql फ़ंक्शंस से अपने कार्यों को पुराने mysqli एक्सटेंशन में पोर्ट करना शुरू करते हैं, तो सावधान रहें कि पुराने एक्सटेंशन के खराब प्रथाओं पर भी पोर्ट न करें (जैसे पुरानी एसक्यूएल स्ट्रिंग कॉन्सटेनेशन और एस्केपिंग तकनीक एक्सटी/mysql की पेशकश की)। इसके बजाय MySQLi prepared statements and parameterized queries का लाभ उठाएं।
मैं आपके MySQL डेटाबेस (अर्थात् PDO and MySQLi) के साथ इंटरफेस करने के लिए नए एपीआई का उपयोग करने के लाभों पर आपका ध्यान केंद्रित करना चाहता हूं।
कार्यों के 'mysql_' परिवार को 5.5 में बहिष्कृत किया जाएगा, और किसी भी बाद के * प्रमुख * संस्करण में पूरी तरह हटा दिया जा सकता है। 5.5 को ध्यान में रखते हुए अभी भी बीटा में नहीं है, और रिलीज * के बाद * थोड़ी देर के बाद, आपको घबराहट करने की आवश्यकता नहीं है। इसे अच्छी और धीमी गति से लें, और अपनी गति से सीखें। साथ ही, ** संबंधित ** साइडबार पर उन प्रश्नों में से प्रत्येक अंतिम प्रश्न देखें। वे कुछ मदद करेंगे। – Charles
इसके अलावा, mysqli के बजाय [पीडीओ] (http://php.net/book.pdo) पर गंभीर नजर डालें। वे दोनों सक्षम हैं, लेकिन पीडीओ का तैयार कथन वाक्यविन्यास बहुत अधिक मित्रवत है। पीडीओ ओओ- * केवल * है, और mysqli की तरह कोई प्रक्रियात्मक गिरावट नहीं है। – Charles