क्या यह कानूनी है?एकाधिक mysql INSERT कथन एक प्रश्न php
$string1= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
mysql_query($string1) or die(mysql_error());
क्या यह कानूनी है?एकाधिक mysql INSERT कथन एक प्रश्न php
$string1= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
mysql_query($string1) or die(mysql_error());
it's much better to insert multiple values with the one insert उदा
INSERT INTO a VALUES (1,23),(2,34),(4,33);
INSERT INTO a VALUES (8,26),(6,29);
"गति डालें" पृष्ठ के संदर्भ के लिए विशेष धन्यवाद। – SarathChandra
नहीं। वे अलग प्रश्न हैं, और उन्हें इस तरह कहा जाना चाहिए।
नहीं, mysql_query()
केवल एक समय में एक प्रश्न की अनुमति देता है।
आप इस तरह कई पंक्तियों सम्मिलित कर सकते हैं:, क्या इसके लायक है, और यदि आप एक ही टेबल में एक ही डाटा डालने कर रहे हैं पर निर्भर करता है के लिए
INSERT INTO table (col1, col2)
VALUES (1, 2), (3, 4), (5, 6)
यह एक बेहतर है - फ़ील्ड नाम निर्दिष्ट करना महत्वपूर्ण है कि आप डेटा को डंप कर रहे हैं ! – itsricky
सामान्य तौर पर, जो मान्य एसक्यूएल के बाद से प्रत्येक कथन आदेश एसक्यूएल इंजेक्शन हमलों है कि एक का फायदा उठाने सकता है के खिलाफ की रक्षा के लिए एक अर्धविराम के साथ समाप्त होता है, लेकिन पीएचपी आप एक समय में एक से अधिक क्वेरी भेजने के लिए अनुमति नहीं है, है खराब लिखित लिपि।
आप अभी भी एक वाक्य रचना की तरह उपयोग कर सकते हैं:
INSERT INTO foo VALUES ('a1', 'b1'), ('a2', 'b2');
MySQL देव समर्थन से MySQL dev forum
INSERT INTO table (artist, album, track, length)
VALUES
("$artist", "$album", "$track1", "$length1"),
("$artist", "$album", "$track2", "$length2"),
("$artist", "$album", "$track3", "$length3"),
("$artist", "$album", "$track4", "$length4"),
("$artist", "$album", "$track5", "$length5");
तो सम्मिलित सामान्य हमेशा की तरह के रूप में चला जाता है: पहला तालिका नाम नामकरण
एक सम्मिलित कथन के साथ कई मानों को खुश करना। :)
कॉपी/एक समारोह और एक पाश के भीतर पेस्ट उदाहरण ($ आईडी है एक सरणी लगता है)
public function duplicateItem($ids)
{
if (isset($ids[0])){ //at least one item
$sqlQuery = "INSERT INTO items (item_id, content) VALUES ";
for($i=0; $i<count($ids); $i++) {
if ($i == count($ids)-1){
$sqlQuery .= "(".$ids[$i][0].", '".$ids[$i][1]."');";
}else{
$sqlQuery .= "(".$ids[$i][0].", '".$ids[$i][1]."'),";
}
}
mysql_query($sqlQuery) or die('Error, insert query failed: '.mysql_error());
}
}
concatenation से बचने के लिए बेहतर है। 'Implode()' का प्रयोग करें। विवरण के लिए यह [उत्तर] (http://stackoverflow.com/a/780046/4040525) देखें। –
इस मामले में इम्प्लोड() का उपयोग क्यों फायदेमंद है? ऊपर दिए गए प्रश्न में हमारे पास सामान्य एसक्यूएल स्टेटमेंट हैं। जवाब में आप इंगित करते हैं कि वे बड़ी मात्रा में टेक्स्ट (जैसे बड़े ग्रंथों के 1000 आवेषण) के बारे में बात करते हैं और, हां, उस मामले में concatenation से बचने के लिए अच्छा है। –
मुझे पता है।यहाँ concatenation का उपयोग करने के लिए ठीक है। कल मैंने दोनों उत्तरों को देखा और सोचा कि अंगूठे के नियम के रूप में 'implode() 'का उपयोग करना बेहतर है। –
INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);
मैं मेरी समस्या मेरी php इस mysqli विधि का उपयोग कर परियोजना [mysqli पर कई क्वेरी चलाने हल .multi-query।] (http://us2.php.net/manual/en/mysqli.multi-query.php) –