यदि आप तैयार कथन का उपयोग करते हैं, तो आप अपने $JSON_data
. पर लूप कर सकते हैं फ़ोरैच लूप के साथ सरणी और INSERT
run चलाएँ डेटा के उस हिस्से के साथ।
तैयार किए गए कथनों का उपयोग करने से क्वेरी बनाने का ओवरहेड कम हो जाएगा, बस लूप के प्रत्येक पुनरावृत्ति पर डेटाबेस को नया डेटा भेजना होगा।
$query = mysqli_prepare("INSERT INTO `MyTable` (`col1`,`col2`,`col3`)
VALUES(?,?,?)");
foreach($JSON_data as $key => $value) {
$query->bind_param('sss',$value["prop1"],$value["prop2"],$value["prop3"];
$query->execute();
}
ध्यान दें कि bind_param()
का पहला तर्क यह बताता है कि आप कितने मानों के लिए बाध्य होंगे, साथ ही प्रत्येक मान के लिए प्रकार।s
स्ट्रिंग डेटा से मेल खाती है, i
पूर्णांक डेटा से मेल खाती है, d
डबल (फ्लोटिंग पॉइंट) से मेल खाती है, और b
बाइनरी डेटा से मेल खाती है।
सावधानी का एक और शब्द, नहीं करें किसी भी स्ट्रिंग डेटा को s
. के रूप में उद्धृत करें डेटाटाइप एक स्ट्रिंग की अपेक्षा करने के लिए MySQL को बताता है। यदि आप ?
. उद्धृत करते हैं तैयार बयान में, यह आपको बताएगा कि पैरा की संख्या गलत है। यदि आप स्ट्रिंग्स को उद्धृत करते हैं, तो इसे mysql में उद्धृत किया जाएगा।
संपादित करें:
यदि आप एक ही प्रतिमान (एक क्वेरी के साथ कई पंक्तियों को सम्मिलित करना) का उपयोग करना चाहते हैं, तो इसे करने के तरीके हैं। एक तरीका एक वर्ग बनाना है जो bind_param
. को एकत्रित करेगा जब आप क्वेरी निष्पादित करते हैं तो कॉल करें और एक bind_param करें। उसके लिए कोड यहां
है। ।