簡體   English   中英

無法使用python將存儲在變量中的數據插入到MYSQL數據庫表中

[英]unable to insert data that are stored in variables in to an MYSQL database table using python

我正在嘗試將輸入到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()

您應該將變量作為.execute的參數.execute而不是將其放入實際查詢中。 例如:

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語句中將它們定義為不引用任何內容的字符串。

通常,當您以這種方式在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)

要么

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})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM