_mysql_exceptions.ProgrammingError:(1064,“你的SQ L语法有错误;正确的语法在第1行'附近使用')'在第1行”

时间:2013-08-06 15:22:10

标签: python mysql

Python MySQL语句返回错误

def _conditional_insert(self, tx, item):
    tx.execute('select * from table where text1 = %s', (item['text1'], ))
    result = tx.fetchone()
    if result:
        log.msg("Item already stored in db: %s" % item, level=log.DEBUG)
    else:
        tx.execute(\
            "INSERT INTO table (text3 table, text1, text2) "
            "values (%s, %s, %s, %s)",
            (item['text3'],
             item['table'],
             item['text1'],
             item['text2'],
             )
        )
        log.msg("Item stored in db: %s" % item, level=log.DEBUG)

def handle_error(self, e):
    log.err(e)

但不断收到以下错误:

  

_mysql_exceptions.ProgrammingError:(1064,“你的SQ有错误)   L语法;检查与您的MySQL服务器版本对应的手册    正确的语法在第1行“)附近使用”)

有人能说出我忽略的地方

1 个答案:

答案 0 :(得分:4)

您在字段规范中text3后缺少逗号。

INSERT INTO table (text3 table, text1, text2)

应该是:

INSERT INTO table (text3, table, text1, text2)

此外,如果您不将table括在引号中,我认为{{1}}不是有效的表名或列名,因为它是关键字。