MySQL sql为列

mad*_*890 0 python mysql mysql-python

我有下表

db.queries
| id        | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name      | varchar(256)     | NO   |     |         |                |
| sql       | text             | NO   |     | NULL    |                |
| frequency | int(10) unsigned | NO   |     | 86400   |                |
Run Code Online (Sandbox Code Playgroud)

我正在使用MySQLdb python工具插入标记的名称,名称SQL查询.

cur.execute("insert into db.queries (name, sql, frequency) values ('{0}', '{1}', {2})".format('some query', 'Select a query', 86400)
Run Code Online (Sandbox Code Playgroud)

我以前曾经多次使用MySQL和MySQLdb,从来没有遇到过这些问题.

我经常遇到的错误如下:

_mysql_exceptions.ProgrammingError:(1064,"您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在'sql,frequency'附近使用正确的语法)值('MY NAME','选择计数(*)如'第1行')

我感谢任何帮助.

Bar*_*mar 5

sql在MySQL中是一个保留字,你需要把它放在反引号中:

cur.execute("insert into db.queries (name, `sql`, frequency) values ('{0}', '{1}', {2})".format('some query', 'Select a query', 86400)
Run Code Online (Sandbox Code Playgroud)