PHP.net वेब साइट के अनुसार, MySQL एक्सटेंशन को PHP 5.5+ के रूप में बहिष्कृत किया गया है, बड़ी संख्या में PHP साइट्स जो MySQL का उपयोग करते हैं, मुझे यह जानना है कि सर्वोत्तम अभ्यास क्या करेंगे MySQL का उपयोग कर मौजूदा साइटों के लिए हो। क्या आप अपनी साइट को PHP के एक संस्करण पर स्थिर कर देंगे जो MySQL का समर्थन करता है? या किसी अन्य डीबी एक्सटेंशन में माइग्रेट करने के लिए लागत और समय प्रतिबद्धता लेते हैं?PHP MySQL फ़ंक्शंस का भविष्य
उत्तर
MySQL एक्सटेंशन को बहिष्कृत किया जा रहा है, न कि संपूर्ण रूप से MySQL समर्थन। सम्प्रति PHP में एक स्थानापन्न के रूप में नए mysqli विस्तार पुश करने के लिए कोशिश कर रहा है:
http://php.net/manual/en/book.mysqli.php
MySQLi वर्ष कार्यों पर बेहतर बनाता है, आप MySQL कार्यों procedurally प्रदर्शन करने के लिए (के रूप में करने से पहले) या वस्तुओं के साथ की इजाजत दी।
हाँ, मुझे वह हिस्सा पता है। PHP ने MySQLI को कार्यान्वित करने के लिए इतना आसान बना दिया होगा अगर उन्होंने फ़ंक्शन कॉल में चर के क्रम को संरक्षित किया हो! –
पीएचपी पुस्तिका पर लिखा है, http://php.net/manual/en/intro.mysql.php
इस विस्तार पीएचपी 5.5.0 के रूप में हटा दिया गया है, और नए कोड लिखने के रूप में यह भविष्य में निकाल दिया जाएगा अनुशंसित नहीं है। इसके बजाए, या तो mysqli या PDO_MySQL एक्सटेंशन का उपयोग किया जाना चाहिए। MySQL API चुनते समय और सहायता के लिए MySQL API अवलोकन भी देखें।
आपको mysqli का उपयोग करना चाहिए।
फिर से प्रश्न पढ़ें, ओपी पहले से ही यह जानता है। – Paul
यदि आपके पास विकास समय है तो मैं अत्यधिक पीडीओ या माईएसक्लुली में जाने की सिफारिश करता हूं। उन एक्सटेंशन को बनाए रखा जाएगा और आधिकारिक तौर पर PHP समूह द्वारा समर्थित किया जाएगा।
यदि आपका एप्लिकेशन वास्तव में स्थिर और सुरक्षित है तो मैं चेतावनी को अक्षम कर दूंगा कि 5.5 उत्पन्न होगा। जब एक्सटेंशन हटा दिया जाता है, तो मुझे यकीन है कि यह अभी भी एक पीईसीएल एक्सटेंशन के रूप में मौजूद होगा जिसे मैं शामिल करूंगा।
यदि आप mysql से दूर जाने जा रहे हैं, तो MySQLi के लिए न जाएं, लेकिन पीडीओ के बजाय।
mysqli or PDO - what are the pros and cons?
देखें मैं इसे देख: पीडीओ> MySQLi> mysql।
पीडीओ समर्थक के में से कुछ:
- Multidatabase
- वस्तु उन्मुख (कोई वैश्विक अजीब दुष्प्रभाव के साथ काम करता है अगर आप वैकल्पिक dblink प्रदान नहीं करते हैं)
- फास्ट
- विशेष MySQL विशिष्ट विकल्प अभी भी उपलब्ध हैं: http://php.net/manual/en/ref.pdo-mysql.php
मैं जानना चाहता हूं कि MySQL का उपयोग कर मौजूदा साइटों के लिए सर्वोत्तम प्रथा क्या होगी।
यह उत्तर देने में आसान है।
आपके आवेदन कोड में कोई भी MySQL (साथ ही Mysqli या PDO) फ़ंक्शन नहीं होना चाहिए।
आप इस
$data = array();
$name = mysql_real_escape_string($_GET['name']);
$result = mysql_query("SELECT * FROM table WHERE name = '$name'");
while ($row = mysql_fetch_row($result)){
$data[] = $row;
}
तो जैसे कच्चे एपीआई कार्यों उपयोग कर रहे हैं आप के लिए शुरुआत अपने कोड immediatey पुनर्लेखन, प्रत्यक्ष कच्चे API कॉल के बजाय कुछ डेटाबेस आवरण का उपयोग कर, यह इस तरह लग रहे बनाने के लिए :
$data = $db->getAll("SELECT * FROM table where name=?s",$_GET['name']);
यह होगा न केवल छोटा और नाटकीय रूप से अपने कोड ज़िंदादिल, लेकिन यह भी एक पुस्तकालय है, जहां यह जो कुछ भी नया एपीआई को बदला जा सकता है में सभी API कॉल डाल जब पीएचपी टीम एक और उत्कृष्ट मारने का फैसला किया ext।
क्यों कोई अपवित्र-प्यार नहीं? ext/mysql * शानदार * है। –
यह प्रश्न शायद स्टैक ओवरफ़्लो के लिए विषय पर नहीं है, लेकिन पूछने के लिए एक अच्छा सवाल है। –
इस पोस्ट को आधुनिक mysqli का उपयोग करने के कुछ कारणों को सूचीबद्ध करना देखें: http://stackoverflow.com/a/8891552/716216 –