mysql.connector.errors.ProgrammingError: 1064 (42000) - Creating Local NVD Mirror

mysql.connector.errors.ProgrammingError: 1064 (42000) - Creating Local NVD Mirror

我正在创建 NVD 托管漏洞文件的本地镜像。

我的代码当前正在连接到数据库,运行检查以下载当前文件,然后继续循环浏览这些文件以查看 .[=28= 中是否有新的 CVE 数据] 每日文件。

今天早上当我的代码循环检查单个 CVE 数据的更新时,我开始收到以下错误。

_mysql_connector.MySQLInterfaceError: 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 'WHERE ID = 'CVE-2014-4611'' at line 1.

在处理上述异常的过程中,又发生了一个异常:

Traceback (most recent call last): File "c....2_add_cvestodb.py", line 134, in mycursor.execute(sql_update_query, val_update_query)

下面是有问题的代码块。

if newtimesplit > oldtimesplit : 
   print("It's newer!")
   sql_update_query = ("UPDATE vulns set Assigner = %s, Reference1 = %s, Reference2 = %s, Reference3 = %s, Description = %s, impactBaseScore = %s, LastModifiedDate = %s, baseSeverity = %s, cveTimeStamp = %s, WHERE ID = %s")
   val_update_query = (Assigner, Reference1, Reference2, Reference3, Description, impactBaseScore, LastModifiedDate, baseSeverity, cveTimeStamp, ID)

   mycursor.execute(sql_update_query, val_update_query)

   mydb.commit()
   updateCtr +=1

有问题的 .json 键值的片段:

{
    "cve" : {
      "data_type" : "CVE",
      "data_format" : "MITRE",
      "data_version" : "4.0",
      "CVE_data_meta" : {
        "ID" : "CVE-2014-4611",
        "ASSIGNER" : "cve@mitre.org"
      },

如有任何建议,我们将不胜感激 - 我已搜索但找不到解决方案。

这个:

cveTimeStamp = %s, WHERE ID = %s

应该是:

cveTimeStamp = %s WHERE ID = %s

删除 WHERE.

之前的最后一个逗号