我尝试在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]
每次调用connect函数时,我都会返回conn和cur。 所以这是我的代码,当我调用函数
connect()[0].execute("insert into tbluser (fullname,nickname) values ('" + fname + "', '" + nname + "') ")
connect()[1].commit()
当我运行时没有发生错误,但是当我检查数据库时,没有插入行。请帮忙。感谢
答案 0 :(得分:2)
每次调用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()
答案 1 :(得分:0)
使用sqlalchemy也可以从python连接数据库。这是代码
from sqlalchemy import create_engine
engine = create_engine('oracle://host:port/database', echo=True)
conn = engine.connect()
result = conn.execute(query)