Я пытался выяснить причину ошибки. Я считаю, что он находится в последнем запросе к базе данных. Я отметил его комментариями.Python/MySQL - Ошибка 1064, не могу понять это
Эта ошибка вызывает у меня головную боль в течение последних 30 минут.
import MySQLdb
import time
# Create a database connection
db = MySQLdb.connect(host="******", user="******", passwd="*****", db="*****")
cur = db.cursor()
# Create a query to select all IDs
cur.execute("SELECT id FROM users")
clientArray = []
# Loop over all IDs returned from query,
# save all IDs in the clientArray
for row in cur.fetchall():
clientID = str(row[0])
clientArray.append(clientID)
clientIDInput = ""
while True:
# Check and wait for input
clientIDInput = raw_input("")
if clientIDInput in clientArray:
# Check to see whether user is already signed in to the device
cur.execute("SELECT fitnessStatus FROM users WHERE id=%s", (clientIDInput))
data = cur.fetchone()
if data[0] == False:
cur.execute("UPDATE users SET fitnessStatus='1' WHERE id=%s", (clientIDInput))
checkInTime = time.strftime('%Y-%m-%d %H:%M:%S')
checkOutID = raw_input("")
if checkOutID == clientIDInput:
cur.execute("UPDATE users SET fitnessStatus='0' WHERE id=%s", (clientIDInput))
checkOutTime = time.strftime('%Y-%m-%d %H:%M:%S')
print checkInTime
print checkOutTime
### I BELIEVE THIS IS THE CAUSE OF THE ERROR ###
cur.execute("INSERT INTO activities (id, machinename, checkin, checkout, clientid) VALUES (NULL, Cross Trainer #5, %s, %s, %s)", (checkInTime, checkOutTime, clientIDInput))
# Send checkInTime and checkOutTime to database
спасибо. Я больше не получаю сообщение об ошибке! К сожалению, ничто не попадает в мою базу данных ... Оно не возвращает никаких ошибок, но оно не добавляет никаких новых вещей в мою таблицу действий. Есть идеи? – Cake
может отсутствовать 'COMMIT WORK' к соединению:' db.commit() 'после соответствующих' UPDATE 'и' INSERT'? Свойство 'autocommit' соединения MySQL отключено по умолчанию afaik. – flaschbier