首页 > 解决方案 > Python 上的 SQL 语法不正确

问题描述

我在这段代码中找不到错误:

sql = "INSERT INTO diff (val) VALUES (%s)"
test = '99'
mycursor.execute(sql, test)

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%s)' at line 1

谁能给我解释一下?提前致谢!

标签: pythonmysql

解决方案


如果您可以描述您正在使用的数据库连接器会有所帮助,但是您可以尝试一些事情:

如果该值是字符串,请尝试将 %s 用引号括起来

"INSERT INTO diff (val) VALUES ('%s')"

您可能需要让您的执行函数的第二个参数是一个元组,即

mycursor.execute(sql, (test,))

您的连接器也可能支持关键字参数

mycursor.execute("INSERT INTO diff (:val)", {'val': '99})

推荐阅读