在MySQL数据库中插入变量值;我正在使用(%s),但出现语法错误

2024-06-17 13:40:18 发布

您现在位置:Python中文网/ 问答频道 /正文

表名:“tickers\u list”(表中只有一列)

列名:“Ticker”

以下工作:

sql = "INSERT INTO tickers_list (Ticker) VALUES ('AAPL')"
mycursor.execute(sql)
mydb.commit()

但当我试图设置它以接受变量时,它不起作用:

symbol = 'AAPL'
sql = "INSERT INTO tickers_list (Ticker) VALUES (%s)"
mycursor.execute(sql, symbol)
mydb.commit()

编程错误:1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第1行“%s”附近要使用的正确语法

我哪里做错了


1条回答
网友
1楼 · 发布于 2024-06-17 13:40:18

您需要使用元组执行,元组必须至少包含一个,。在Python中,对于单个值,这意味着:

mycursor.execute(sql, (symbol,))

这看起来确实有点奇怪,但事实就是这样。对于多个值,它看起来更正常,不需要尾随,

相关问题 更多 >