Bir veritabanında aynı satırdaki 2 değeri okumaya çalışıyorum ancak yalnızca tüm satırı bir kerede okuyabilecek kadar iyiyim. Ben alakadar ettiğini düşündüğünüz tüm kodu eklemiş:Bir veritabanındaki sqlite ile aynı satırdaki tek tek değerleri nasıl okuyorsunuz?
def find(search, term):
# Helper function for the find function.
with connect("GTINb.db") as db:
cursor = db.cursor()
sql = "select * from GTINb where {} = ?".format(search)
cursor.execute(sql,(term,))
db.commit()
results = cursor.fetchall()
new = str(term)
if results:
results = str(results)
temp = open('temp.txt', 'a')
temp.write(results)
temp.write('\n')
temp.close()
with connect("GTINb.db") as db:
cursor.execute("UPDATE GTINb SET stockcur=stockcur-1 WHERE GTIN8=(?)",(new,))
cur = cursor.execute("SELECT stockcur from GTINb by (?)",(new,))
re = cursor.execute("SELECT restock from GTINb by (?)",(new,))
if cur < re:
cursor.execute("UPDATE GTINb SET stockcur=stockcur+10 WHERE GTIN8=(?)",(new,))
return print('More stock has been ordered in as stocks were low')
else:
return
else:
temp = open('temp.txt', 'a')
temp.write('Product not found')
temp.write('\n')
temp.close()
return
Şu anda hata sqlite3.OperationalError: near "(": syntax error
alacağım, '(?)' % S ile, (% s) ve değiştirme denedi? Hiçbir başarı ile, aşağıdaki hata mesajları ile geliyor:
sqlite3.OperationalError: near "12345670": syntax error // where 12345670 was the input represented by new
sqlite3.OperationalError: near "(": syntax error
sqlite3.OperationalError: near "?": syntax error
Bunu yaparken ya da ben basit bir hata yapmış bir başka yolu var mı?
'(?)' Ifadesi ne anlama geliyor? '' '' 'GROUP BY' ya da' ORDER BY' parçası olarak kullanılabilir. – Barmar
Yani "GRINb" tablosunun takma adı olarak davranıyor ve SQL'de bu noktada bir "WHERE" maddesini (veya başka bir yan tümcesi) bekler, ancak '(?) 'Bulur; mantıklı. – Barmar
@Barmar, (?) Tarafından, kullanıcı girdisi olan satırdaki bilinen değere başvurmak için kullanılır ve ayrıca hata muhtemelen – Beginner