簡體   English   中英

ProgrammingError: (1064, ..) for the right syntax to use near '))' at line 1")

[英]ProgrammingError: (1064, ..) for the right syntax to use near '))' at line 1")

我正在嘗試使用 AWS lambda 查詢 RDS 實例。 我在 python 中對其進行編碼。

我的插入查詢是:

with conn.cursor() as cur:
 cur.execute("""insert into DocumentLanguagesInfo (documentId, version, language1, 
 language1Confidence, language2, language2Confidence, language3, language3Confidence, 
 otherLanguages) values(%s, %s, %s, %s, %s, %s, %s, %s, %s)""", (docId, version, lang1, 
 lang1Conf, lang2, lang2Conf, lang3, lang3Conf, otherLangs))

其中conn是連接SQL服務器的變量,建立成功。

但是,當我執行此查詢時,我在 cloudwatch 中收到以下錯誤:

[ERROR] ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1")
Traceback (most recent call last):
  File "/var/task/sqlConnection.py", line 100, in lambda_handler
    cur.execute("""insert into DocumentLanguagesInfo (documentId, version, language1, language1Confidence, language2, language2Confidence, language3, language3Confidence, otherLanguages) values(%s, %s, %s, %s, %s, %s, %s, %s, %s)""", (docId, version, lang1, lang1Conf, lang2, lang2Conf, lang3, lang3Conf, otherLangs))

我嘗試以這種方式編寫代碼,但仍然給出相同的錯誤:

with conn.cursor() as cur:
        sql_query = "insert into DocumentLanguagesInfo (documentId, version, language1, language1Confidence, language2, language2Confidence, language3, language3Confidence, otherLanguages) values(%s, %s, %s, %s, %s, %s, %s, %s, %s)"
        recordTuple = (docId, version, lang1, lang1Conf, lang2, lang2Conf, lang3, lang3Conf, otherLangs)

        cur.execute(sql_query, recordTuple)
        conn.commit()

我在這個查詢中做錯了什么?

我認為問題可能在於otherLangs是一個列表。 也許使用

recordTuple = (docId, version, lang1, lang1Conf, lang2, lang2Conf, lang3, lang3Conf, tuple(otherLangs)) 

會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM