python 函数中的数据库连接

Liz*_*iza 4 python oracle

我尝试在 python 中创建一个用于数据库连接的函数。但这现在正在发挥作用。这是我的定义代码。

def connect():
    dsn = cx_Oracle.makedsn(host='MYHOST', sid='DEVPRON', port=1521)
    conn = cx_Oracle.connect(user='root', password='***', dsn=dsn)
    cur = conn.cursor()
    return [cur,conn]
Run Code Online (Sandbox Code Playgroud)

每次调用 connect 函数时,我都会返回 conn 和 cur 。这是我调用该函数时的代码

connect()[0].execute("insert into tbluser (fullname,nickname) values ('" + fname + "', '" + nname + "') ")
connect()[1].commit()
Run Code Online (Sandbox Code Playgroud)

当我运行此命令时,没有发生错误,但是当我检查数据库时,没有插入行。请帮忙。谢谢

pai*_*ima 5

每次调用 connect 函数时,您都会创建与数据库服务器的新连接。因此,您的第一个调用将执行一个查询。第二次通话将为您提供新的连接。您正在使用这个新连接进行承诺,但没有发生任何变化。试试这个:

def connect():
    dsn = cx_Oracle.makedsn(host='MYHOST', sid='DEVPRON', port=1521)
    conn = cx_Oracle.connect(user='root', password='***', dsn=dsn)
    cur = conn.cursor()
    return cur, conn

cur, conn = connect()
cur.execute("insert into tbluser (fullname,nickname) values ('" + fname + "', '" + nname + "') ")
conn.commit()
Run Code Online (Sandbox Code Playgroud)