gpt4 book ai didi

python:在 mysql 中将数据作为字符串添加会出现奇怪的错误

转载 作者:行者123 更新时间:2023-11-29 20:13:26 26 4
gpt4 key购买 nike

我的一段 Python 代码遇到了一个奇怪的问题。

它应该如何工作的想法:1. 输入条形码(目前为硬编码);2.在本地mysqldb中查找条形码,如果没有找到,则通过datakick的api查找条形码,如果在那里也没有找到,则步骤33.我想将条形码添加到本地mysql数据库并请求一些输入。

现在的问题是:它有效!只要您填写 naamProduct 的数字即可。如果您使用字母(例如,我填写了 Bla 作为产品名),我会收到一个奇怪的 SQL 错误 (_mysql_exceptions.OperationalError: (1054, "Unknown column 'Bla' in 'field.list'")

我检查了mysql中的表,类型都没有问题。名称结束的表格是文本。我还尝试过硬编码字符串,效果很好。从 mysql 控制台使用 sql-query 也可以完美地工作。我的猜测是输入部分出了问题,但我不知道是什么。

(我知道代码仍然不太整洁,除了异常(exception)情况;)逐步处理它)

`

def barcodeFunctie(sql):
con = mdb.connect ('localhost', 'python', 'python', 'stock')
cur = con.cursor()
cur.execute(sql)
ver = cur.fetchone();
con.commit()
con.close()
return ver

#barcode = '8710624957278'
#barcode = '2147483647'
barcode = '123'

#zoeken op barcode. Barcode is ook de sleutel in de tabel.
sql = "select * from Voorraad where Id=%s" % barcode

if barcodeFunctie(sql) == "None":
print "geen output"
else:
try:
url='https://www.datakick.org/api/items/'+barcode
data = json.load(urllib2.urlopen(url))
print data['brand_name'], data['name']
except:
#barcode komt niet voor in eigen db en niet in db van datakick, in beide toevoegen
print barcode, " barcode als input"

naamProduct = str(raw_input("Wat is de naam van het product? "))
hoeveelheidProduct = raw_input("Hoeveel inhoud heeft het product? ")

sql = "insert into Voorraad (Id, NaamProduct,HoeveelHeidProduct) values (%s,%s,%s)" % (barcode, naamProduct, hoeveelheidProduct)
barcodeFunctie(sql)
print "meuktoegevoegd! :D"

`

最佳答案

sql = "select * from Voorraad where Id=%s" % barcode

您的问题是缺少 ID 的引号。将上面的行更改为:

sql = "select * from Voorraad where Id='%s'" % barcode

关于python:在 mysql 中将数据作为字符串添加会出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39942061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com