2013-09-27 6 views
10

मैं पाइथन MySQL कनेक्टर का उपयोग कर रहा हूं, मैंने डेटाबेस में एक रिकॉर्ड डाला, और यह सफल रहा। लेकिन पायथन कोड में, मुझे कैसे पता चलेगा कि यह डाला गया है या नहीं? मेरी तालिका में प्राथमिक कुंजी नहीं है।पायथन कैसे पता चलता है कि कोई रिकॉर्ड सफलतापूर्वक डाला गया है या नहीं

def insert(params) : 
    db_connection = Model.get_db_connection() 
    cursor = db_connection.cursor() 
    try : 
     cursor.execute("""INSERT INTO `User`(`UID`, `IP`) VALUES(%s,%s);""", (params)) 
     db_connection.commit() 
    except : 
     db_connection.rollback() 
    Model.close_db(db_connection) 
    return result 

उत्तर

20

आप .rowcount विशेषता का उपयोग कर सकते हैं:

cursor.execute("""INSERT INTO `User`(`UID`, `IP`) VALUES(%s,%s);""", params) 
print("affected rows = {}".format(cursor.rowcount)) 

.rowcount यह केवल पढ़ने के लिए विशेषता पंक्तियों (DQL बयानों के लिए पिछले .execute *() का उत्पादन किया की संख्या निर्दिष्ट करता है जैसे चयन करें) या प्रभावित (अद्यतन या INSERT जैसे डीएमएल विवरणों के लिए)। [9]

+0

धन्यवाद, यह काम करता है। : डी –

+0

एक और सवाल @falsetru, मैंने इस प्रश्न को पोस्ट करने से पहले .rowcount का उपयोग किया। लेकिन इसने एक त्रुटि फेंक दी "int 'कॉल करने योग्य नहीं है"। लेकिन अब यह काम किया, मैं वास्तव में क्यों नहीं जानता क्यों। –

+2

@GiaDuongDucMinh, क्या आपने विधि की तरह पंक्ति गणना को बुलाया था? '.rowcount()'? यह एक विधि नहीं है। – falsetru

संबंधित मुद्दे