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

एकाधिक MYSQL क्वेरी निष्पादित करने के लिए PHP का उपयोग करना

प्रश्नों का एक गुच्छा एक साथ न चलाएं। आमतौर पर एक की सफलता अन्य सभी ऑपरेशनों के सही ढंग से किए जाने पर निर्भर करती है, इसलिए आप केवल बुलडोजर नहीं चला सकते हैं जैसे कि कोई समस्या होने पर कुछ भी गलत नहीं हुआ हो।

आप इसे इस तरह कर सकते हैं:

$queries = [
  "CREATE TEMPORARY TABLE tmp SELECT * FROM event_categoriesBU WHERE id = 1",
  "UPDATE tmp SET id=100 WHERE id = 1",
  "INSERT INTO event_categoriesBU SELECT * FROM tmp WHERE id = 100"
];

foreach ($query as $query) {
  $stmt = $conn->prepare($query);
  $stmt->execute();
}

अपवादों को सक्षम करना भूलना न भूलें ताकि कोई भी क्वेरी विफलता नियंत्रण से बाहर होने के बजाय आपकी प्रक्रिया को रोक दे।

कारण आप नहीं multi_query . का उपयोग करें ऐसा इसलिए है क्योंकि वह फ़ंक्शन प्लेसहोल्डर मानों का समर्थन नहीं करता है। यदि आपको इस क्वेरी में किसी प्रकार का उपयोगकर्ता डेटा पेश करने की आवश्यकता है तो आपको bind_param का उपयोग करने की आवश्यकता है इसे सुरक्षित रूप से करने के लिए। प्लेसहोल्डर मानों के बिना आप SQL इंजेक्शन बग के संपर्क में हैं, और उनमें से एक ही आपके पूरे एप्लिकेशन को असुरक्षित बनाने के लिए पर्याप्त है।

यह ध्यान देने योग्य है कि पीडीओ mysqli . की तुलना में बहुत अधिक लचीला और अनुकूलनीय है इसलिए यदि आपने 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. SQL डेटाबेस तालिका में nth पंक्ति का चयन कैसे करें?

  2. SQL कुंजियाँ, MUL बनाम PRI बनाम UNI

  3. एक तालिका से रिकॉर्ड खोजें जो दूसरे में मौजूद नहीं है

  4. पायथन और MySQL डेटाबेस:एक व्यावहारिक परिचय

  5. एसक्यूएल पंक्तियों को हटाएं जहां आईडी का किसी अन्य तालिका से मेल नहीं है