2010-05-12 15 views
5

मुझे MySQL और PHP के साथ "ऑन डिप्लिकेट कुंजी अपडेट" के साथ तैयार कथन का उपयोग करने का कोई संदर्भ नहीं मिल रहा है। क्या मैं यह सोचने में सही हूं कि यह संभव नहीं है?क्या आप "डुप्लिकेट कुंजी अपडेट" पर MySQL में एक तैयार कथन का उपयोग कर सकते हैं?

-जिम

उत्तर

0

आप सबसे निश्चित रूप से पीएचपी + MySQL के साथ ON DUPLICATE KEY UPDATE उपयोग कर सकते हैं। या तुमने कोशिश की? यदि आपके पास है, तो आप किस समस्या में भाग गए?

+0

क्षमा करें, मेरे सवाल का स्पष्ट नहीं था, इसलिए मैं यह संपादित। मैंने कई बार आवेदन कुंजी अद्यतन पर उपयोग किया है, लेकिन कभी भी तैयार कथन के साथ नहीं। मैंने निर्देशों के लिए कई स्थानों को देखा कि यह कैसे किया जा सकता है लेकिन कुछ भी नहीं मिला। व्यर्थ प्रयोग पर दोपहर बर्बाद करने से पहले मैंने सोचा कि मैं यह देखने के लिए जांच करूंगा कि कोई यह पुष्टि कर सकता है कि यह वास्तव में व्यवहार्य है। -जिम –

2

आपको प्रत्येक SQL क्वेरी को तैयार कथन के रूप में चलाने में सक्षम होना चाहिए। मुझे नहीं पता कि आपको लगता है कि ON DUPLICATE KEY UPDATE के लिए कोई अपवाद क्यों होगा। इसे पहले आज़माएं और हमसे पूछें कि क्या कोई समस्या है या नहीं।

+0

धन्यवाद एमिल। मैं इसे आज़मा दूंगा, हालांकि मैं तस्वीर नहीं देख सकता कि यह कैसे काम करेगा। क्या आप mysqli_prepare में क्वेरी पर ऑन डिप्लिकेट कुंजी अपडेट जोड़ देंगे और प्रतिस्थापन मान भी होंगे? निशान? अगर यह काम करेगा तो यह मेरे लिए बहुत उपयोगी होगा। मैं अपने परिणामों पर रिपोर्ट करूंगा, हालांकि यह कुछ समय पहले हो सकता है कि मेरे पास यह कोशिश करने का समय हो। जिम –

18

यहाँ इस उपयोग के एक सामान्यीकृत उदाहरण है:

$db->prepare(' 
INSERT INTO tableName (id, col1, col2, col3...) 
VALUES (?,?,?,?) 
ON DUPLICATE KEY 
UPDATE col1 = VALUES(col1), 
     col2 = VALUES(col2), 
     col3 = VALUES(col3) 
'); 

$stmt->bind_param('isss', 
        $id, 
        $col1, 
        $col2, 
        $col3 
       ); 
$db->execute($stmt); 

if ($id == null) { //If you need the auto increment from the insert. 
    $newId = $stmt->insert_id; 
} 
संबंधित मुद्दे