无法使用python将存储在中的变量中的数据插入MYSQL数据库表

无法使用python将存储在中的变量中的数据插入MYSQL数据库表,python,mysql,flask,Python,Mysql,Flask,我正在尝试将输入web表单的数据插入数据库表,我正在将数据传递给函数以插入数据,但没有成功。下面是我的代码 def addnew_to_database(tid,pid,usid,address,status,phno,email,ord_date,del_date): connection = mysql.connector.connect(user='admin_operations', password='mypassword',host='127.0.0.1',database=

我正在尝试将输入web表单的数据插入数据库表,我正在将数据传递给函数以插入数据,但没有成功。下面是我的代码

def addnew_to_database(tid,pid,usid,address,status,phno,email,ord_date,del_date):
    connection = mysql.connector.connect(user='admin_operations', password='mypassword',host='127.0.0.1',database='tracking_system')
    try:
        print tid,pid,usid,address,status,phno,email,ord_date,del_date
        cursor = connection.cursor()
        cursor.execute("insert into track_table (tid,pid,usid,address,status,phno,email,ord_date,del_date) values(tid,pid,usid,address,status,phno,email,ord_date,del_date)")
        cursor.execute("insert into user_table (tid,usid) values(tid,usid)")
    finally:
        connection.commit()
        connection.close()

您应该将变量作为参数传递给
。执行
,而不是将它们放入实际查询中。例如:

cursor.execute("""insert into track_table 
                    (tid,pid,usid,address,status,phno,email,ord_date,del_date)
                  values (%s,%s,%s,%s,%s,%s,%s,%s,%s)""", 
               (tid,pid,usid,address,status,phno,email,ord_date,del_date))
cursor.execute("""insert into user_table 
                    (tid,usid) 
                  values (%s,%s)""",(tid,usid))

您应该告诉我们您使用的是什么API以及错误代码是什么。 您应该将执行中的值定义为一个字符串,而不是引用任何内容

通常,当您以这种方式在sql语句中使用变量名时,需要指出它是您要将数据绑定到的变量。这可能会将其替换为对应于有序列表的(1,2,3,4..)或(%s,%s,…),或使用变量名(:tid,:pid,…),然后使用字典将的值定义为execute()的第二个参数

像这样:

track_table_data = [tid,pid,usid,address,status,phno,email,ord_date,del_date]
user_table_data = [tid,usid]
cursor.execute("insert into track_table (tid,pid,usid,address,status,phno,email,ord_date,del_date) values(1,2,3,4,5,6,7,8,9)", track_table_data)
cursor.execute("insert into user_table (tid,usid) values(1,2)",user_table_data)


我是否清楚或者应该更详细地解释success,thankyou sirvalues是在另一个方法中定义的,它们作为parameters@learner对不起,这很清楚,我的意思是执行insert语句。按照您的设置方式,您没有插入数据,因为在数据库中插入的值没有引用任何内容,也没有引用为值本身。为了清晰起见,我将进行编辑。
cursor.execute("insert into track_table (tid,pid,usid,address,status,phno,email,ord_date,del_date) values(:tid,:pid,:usid,:address,:status,:phno,:email,:ord_date,:del_date))", {'tid':tid,'pid':pid,'usid':usid,'address':address,'status':status,'phno':status,'email':email,'ord_date':ord_date,'del_date':del_date})
cursor.execute("insert into user_table (tid,usid) values(:tid,:usid)",{'tid':tid,'usid':usid})