python 向sql语句中传参

2025-01-01 06:54:04
推荐回答(3个)
回答1:

一般的处理思路是将数据库操作的方法放在一个模块中,比如ConnectSQL.py:

import MySQLdb
def ExecNonQuery(sql):
    conn = MySQLdb.connect(host='xxxx',user='xxxx',passwd='xxxx',db='xxxx')
    cur = conn.cursor()
    cur.execute(sql)
    conn.commit()
    conn.close()

那么你的a.py代码为:

from ConnectSQL import *
def mysql_insert(i,data):
     try:
             ExecNonQuery('insert into mytest values(%s,%s)' % (i,data))
     except:
             return 0

你的b.py代码不变。

回答2:

哈哈哈,你这样当然传不进去啊,只是一个字符串,你没有给参数赋值啊。
你可以改成cursor.execute("insert into mytest values(%s,%s)",i,data);
还有你这个cursor,你保证初始化过他吗

回答3:

如果将

cursor.execute('insert into mytest values(i,data)')
改为
cursor.execute('insert into mytest values(?,?)',(i,data,))
会怎么样呢