У меня возникла странная проблема с куском кода python.python: добавление данных в виде строки в mysql дает странную ошибку
Идея, как она должна работать: 1. вводится штрих-код (теперь на данный момент хард-код); 2. barcode просматривается в локальном mysqldb, если не найден, штрих-код просматривается через api из datakick, если его там тоже не найти, шаг 3 3. Я хочу добавить штрих-код в свою локальную базу данных mysqld и запросить некоторые вход.
Теперь проблема: она работает! als long, поскольку вы заполняете цифры для naamProduct
. Если вы используете буквы (например, я заполнил Bla как productname), я получаю странную ошибку SQL (_mysql_exceptions.OperationalError: (1054, "Unknown column 'Bla' in 'field.list'")
Я проверил таблицы в mysql, и типы все в порядке. Таблица, в которой должно быть указано имя, - это текст. Я также пробовал жестко закодированную строку, которая отлично работает. Использование sql-запроса с консоли mysql также отлично работает. Моя догадка что-то идет не так с входной частью, но я не могу понять, что.
(код по-прежнему не очень аккуратным с исключениями, я знаю;) Работа на ней шаг за шагом)
`
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"
`
А должны были видеть, что с этим строка не работает, но Int сделаем. Добавление цитаты исправлено, спасибо за помощь и ваш ответ – Janko
Вам также нужно добавить цитаты в свой оператор insert. Обратите внимание на ответ Криса. – sisanared