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

क्या मैं आँख बंद करके सभी mysql_ कार्यों को mysqli_ से बदल सकता हूँ?

संक्षिप्त उत्तर नहीं . है , फ़ंक्शन समकक्ष नहीं हैं।

अच्छी खबर यह है कि एक कनवर्टर टूल है जो आपकी मदद करेगा यदि आपके पास बदलने के लिए बहुत सी कॉल/प्रोजेक्ट हैं। यह आपकी स्क्रिप्ट को तुरंत काम करने देगा।

https://github.com/philip/MySQLConverterTool

यह Oracle मूल संस्करण का एक कांटा संस्करण है, और यह कोषेर है।

उस ने कहा, अपने कोड को अपडेट करना बहुत मुश्किल नहीं है, और हो सकता है कि आप किसी ऑब्जेक्ट उन्मुख पद्धति में माइग्रेट करना चाहें ...

1) कनेक्शन

सभी उद्देश्यों और उद्देश्यों के लिए, आपको एक नया कनेक्शन फ़ंक्शन चाहिए जो कनेक्शन को PHP चर के रूप में सहेजता है, उदाहरण के लिए;

$mysqli = new mysqli($host, $username, $password, $database);

सूचना मैंने $mysqli . से कनेक्शन सहेज लिया है . आप $db . में सेव कर सकते हैं या जो भी आपको पसंद हो, लेकिन आपको कनेक्शन को संदर्भित करने के लिए अपने पूरे कोड में इसका उपयोग करना चाहिए।

कनेक्शन खोलने से पहले mysqli के लिए त्रुटि रिपोर्टिंग सक्षम करना याद रखें;

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

2) प्रश्न

नोट:आपको तैयार किए गए कथनों के साथ SQL इंजेक्शन से बचाव करना चाहिए, जो MySQLi में उपलब्ध हैं। मैं PHP में SQL इंजेक्शन को कैसे रोक सकता हूं? पर एक नज़र डालें। , लेकिन मैं यहां केवल मूल बातें कवर करने जा रहा हूं।

अब आपको कनेक्शन को अपनी क्वेरी में तर्क के रूप में शामिल करना होगा, और अन्य mysqli_ कार्य। प्रक्रियात्मक कोड में यह पहला तर्क है, OO में आप इसे एक वर्ग विधि की तरह लिखते हैं।

प्रक्रियात्मक:

$result = mysqli_query($mysqli, $sql);

ऊ:

$result = $mysqli->query($sql);

3) परिणाम प्राप्त करें

परिणाम प्राप्त करना पुराने mysql_ . के समान है प्रक्रियात्मक रूप से कार्य करना;

while ($row = mysqli_fetch_assoc($result))

लेकिन $result . के रूप में अब mysqli में एक ऑब्जेक्ट है, आप ऑब्जेक्ट फ़ंक्शन कॉल का उपयोग कर सकते हैं;

while ($row = $result->fetch_assoc())

4) कनेक्शन बंद करें

तो पहले की तरह, आपको कनेक्शन को क्लोज फंक्शन में शामिल करना होगा; प्रक्रियात्मक में एक तर्क के रूप में;

mysqli_close($mysqli);

और जिस ऑब्जेक्ट पर आप OO में फ़ंक्शन चलाते हैं;

$mysqli->close();

मैं यहां हमेशा के लिए रहूंगा यदि मैं उन सभी के माध्यम से गया, लेकिन आपको यह विचार मिलता है। दस्तावेज पर एक नज़र डालें अधिक जानकारी के लिए। किसी भी कनेक्शन को बंद करना, परिणाम जारी करना, या त्रुटि और पंक्ति गणना फ़ंक्शन जो आपके पास हैं, परिवर्तित करना न भूलें।

अंगूठे का मूल नियम उन कार्यों के लिए है जो डेटाबेस कनेक्शन का उपयोग करते हैं, आपको इसे अब फ़ंक्शन में शामिल करने की आवश्यकता है (या तो प्रक्रियात्मक में पहला तर्क, या ऑब्जेक्ट जिसे आप ओओ में फ़ंक्शन को कॉल करने के लिए उपयोग करते हैं), या परिणाम सेट के लिए आप फ़ंक्शन को केवल mysqli_ . में बदल सकते हैं या परिणाम सेट को ऑब्जेक्ट के रूप में उपयोग करें।



  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. GUI का उपयोग करके MySQL कार्यक्षेत्र में वर्तमान कनेक्शन कैसे देखें?

  3. पीएचपी पीडीओ:वर्णसेट, सेट नाम?

  4. DAYOFWEEK () उदाहरण – MySQL

  5. Ubuntu 20.04 पर MySQL को इंस्टाल करना और कॉन्फ़िगर करना