2016-07-19 4 views
0

В настоящее время я имею таблицу MySQL, которая выглядит как:MySQL # 1054 код ошибки для UPDATE запроса

mysql> SELECT * FROM settings; 
+--------------+-------+ 
| name   | value | 
+--------------+-------+ 
| connected | 0  | 
+--------------+-------+ 

и я пытаюсь обновить значение с меткой времени для подключен через Python с этим кодом:

db1 = MySQLdb.connect(host="localhost", user="user", passwd="password", db="database") 
cursor1 = db1.cursor() 
cursor1.execute("UPDATE settings SET value = 'ts' WHERE name = connected") 
db1.commit() 
cursor1.close() 

Это возвращает мне:

cursor1.execute("""UPDATE settings SET value = 'ts' WHERE name = connected""")
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue _mysql_exceptions.OperationalError: (1054, "Unknown column 'connected' in 'where clause'")

, и я просто не могу понять это. Любая помощь могла бы быть полезна.

+6

Ваш запрос пытается сравнить 'name' колонки к колонке под названием' connected'. Если вы хотите сравнить столбец 'name' со строкой" connected ", то вы имеете в виду' WHERE name = 'connected'' – khelwood

ответ

1

1054, "Unknown column 'connected' in 'where clause'

Эта ошибка ясно указывает, что connected будет рассматривать в качестве имени столбца.

Но здесь connected - это строковое значение, которое должно совпадать с именем столбца name.

Таким образом, вы должны поместить апостроф вокруг connected строки, чтобы решить вопрос:

cursor1.execute("UPDATE settings SET value = 'ts' WHERE name = 'connected'") 
Смежные вопросы