मैंने हाल ही में इस परियोजना को संगीतकार एकीकरण, इकाई परीक्षण और संदर्भ द्वारा स्वीकार किए गए तर्कों को बेहतर तरीके से संभालने के लिए अद्यतन किया है (इसके लिए PHP 5.6 को अद्यतन करने की आवश्यकता है)।
:
मैं कक्षाओं कि डिफ़ॉल्ट mysqli
और mysqli_stmt
कक्षाओं का विस्तार आप संभावित क्वेरी स्ट्रिंग है, जो प्रदान करना चाहिए की एक गायन देखने देने के लिए का एक सेट बनाने के बाद क्या आप देख रहे हैं https://github.com/noahheck/E_mysqli
यह आप के लिए एक (करीब) ड्रॉप-में प्रतिस्थापन है सामान्य mysqli
उद्देश्य यह है कि एक कस्टम mysqli_stmt
ऑब्जेक्ट जब आप prepare()
क्वेरी स्ट्रिंग।
$mysqli = new E_mysqli($dbHost, $dbUser, $dbPass, $dbName);
$query = "INSERT INTO registration SET name = ?, email = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $_POST['name'], $_POST['email']);
$stmt->execute();
echo $stmt->fullQuery;
परिणाम होगा में:
INSERT INTO registration SET name = 'John Doe', email = '[email protected]'
इस एक्सटेंशन का उपयोग के साथ कुछ चेतावनियां हैं अपने मानकों को बंधन के बाद, E_mysqli
आप stmt
वस्तु का एक नया संपत्ति के रूप में परिणामी क्वेरी स्ट्रिंग देखने के लिए अनुमति देगा (github प्रोजेक्ट में README में समझाया गया है), लेकिन आपके एप्लिकेशन के परेशानी वाले क्षेत्रों की समस्या निवारण के लिए, या प्रक्रियात्मक से किसी ऑब्जेक्ट उन्मुख शैली में संक्रमण के लिए, यह अधिकांश उपयोगकर्ताओं के लिए एक स्तर की सहायता प्रदान करना चाहिए।
जैसा कि मैंने जिथब प्रोजेक्ट में उल्लिखित किया है, मेरे पास mysqli
एक्सटेंशन का उपयोग करके कोई व्यावहारिक अनुभव नहीं है, और यह प्रोजेक्ट इसकी बहन प्रोजेक्ट के उपयोगकर्ताओं के अनुरोध पर बनाया गया था, इसलिए कोई भी प्रतिक्रिया जो प्रदान की जा सकती है उत्पादन में इसका उपयोग करने वाले देवों की बहुत सराहना की जाएगी।
अस्वीकरण - जैसा कि मैंने कहा, मैंने यह एक्सटेंशन बनाया है।
अच्छी तरह से थोड़ा कष्टप्रद = \ आपको लगता है कि निष्पादित कथन – Stomped
लाने का कोई तरीका है यदि आपको PHP पक्ष पर इसकी आवश्यकता है, मुख्य रूप से डिबगिंग कारणों के लिए, मुझे लगता है कि आप SQL को फिर से बना सकते हैं क्वेरी जो कथन के निष्पादन के बराबर है: आपको प्लेसहोल्डर को चर के मानों से प्रतिस्थापित करना होगा * (डेटा से बचने, निश्चित रूप से, आपको छोड़ दिया जाएगा) * ;;; यदि आपको अक्सर इसकी आवश्यकता है, तो आपको एक ऐसा फ़ंक्शन लिखने में सक्षम होना चाहिए जो आपके लिए यह करता है; अन्यथा, 'var_dump' में से कुछ को पहले से ही यह देखने में मदद करनी चाहिए कि MySQL सर्वर पर कौन सा डेटा भेजा गया है। –
@stomped बिंदु यह है कि कोई निष्पादित कथन नहीं है। वह कदम पूरी तरह से छोड़ दिया गया है। – troelskn