2014-12-07 3 views
0

Я пытаюсь запустить запрос обновления внутри функции с помощью глобального курсора, который был установлен в операторе «с MySQLdb.connect» в основном корпусе. По какой-то причине обновление запросов в основной работе тела, хотя и запросы в функции не работают :( Есть ли способ, чтобы получить ошибку, потому что никто не генерируется,PyMysql Обновление запроса внутри функции с помощью глобального курсора

import MySQLdb 
import sys 
def updateFunction(data): 
    global cur 
    cur.execute("UPDATE1") 
    sys.exit(0) 
if __name__=="__main__": 
    data="sample data, not important" 
    with MySQLdb.connect(host="localhost",user="user",passwd="pass",db="db") as cur: 
     cur.execute("UPDATE2") 
     updateFunction(data) 

в этом примере UPDATE2 будет работать . и Update1 Wouldnt

ответ

0

проблема заключалась в том, что обновление запросов, необходимых для быть поручены, и это должно было быть сделано через connection.commit()

+1

Это требуется только, когда что-то вроде [это] (Http:. //dev.mysql. com/doc/refman/5.0/en/server-system-variables.html # sysvar_autocommit) используется для автоматического отключения 'autocommit' о новых соединениях. – jordanm

+0

@jordanm Я этого не знал, я только использовал mysql с php до сих пор, и я havent должен был фиксировать обновления и вставки, спасибо. – Evan

Смежные вопросы