2017-01-12 1 views
-2

Wer weiß, wie eine Abfrage in einem Wert in Python SQLiteeine Abfrage in SQLite-Wert verwenden - Python

Die eroor ich bin immer ist auszuführen: sqlite3.InterfaceError: Fehler 1-Bindungsparameter - wahrscheinlich nicht unterstützten Typs.

mein Code ist hier:

Name = input("Enter the name of the product you want to purchase: >>") 
item = Name 
qty = input("Enter the Quantity of the product you want to purchase: >>") 

today = date.today() 
cursor = db.cursor() 
cursor.execute("SELECT CatID from Products where Name=?",(Name,)) 
result = cursor.fetchall() 

confirm = input("are you sure you want tot buy this product (y/n): >>") 

if confirm == "y": 

    ### In this query where it says result i want to execute the data from the result query 
cursor.execute("INSERT INTO OrderHistory(Username,Category,Date,Qty,ItemHistory) Values(?,?,?,?,?)",(Username,result,today,qty,Name)) 

db.commit() 

print("Product purchased. Thankyou for your order") 

cursor.execute("UPDATE Products SET Qty = (? -1) where Name = ?",(qty,item,)) 

else: 

print("The program will now terminate") 
+1

bearbeiten Frage und Formatcode. – furas

+0

@furas was meinst du –

+0

'result' kann Iterator' sein. Sie müssen eine einzelne Zeile vom Interator und später ein einzelnes Element aus der Zeile abrufen. – furas

Antwort

0

Sie können auch Ergebnis iterieren:

for row in result: 
    cursor.execute(
    "INSERT INTO OrderHistory(Username,Category,Date,Qty,ItemHistory) SELECT CatID,?,?,?,? FROM Products WHERE Name=?",(Username,row,today,qty,Name)) 
    db.commit() 
+0

Ich habe es zu arbeiten mit result = str (Ergebnis), aber es fügt den Wert in der Datenbank wie folgt ein [(7,)] wissen Sie, wie man es nur einfügen 7 –

+0

beziehen sich auf diese: http: // stackoverflow.com/questions/12867140/python-mysqldb-get-the-result-of-fetchall-in-a-list – Bambang

+0

danke trotzdem gemacht durch strippen der string funktioniert gut –

Verwandte Themen