Python连接MySQL时SELECT语句绑定变量报错问题求助
Python MySQL 语法错误问题解决
你的问题出在cursor.execute()方法的参数传递方式上:mysql.connector要求第二个参数必须是元组或列表,哪怕只有一个参数也不能直接传入单个变量。
原报错信息翻译:
mysql.connector.errors.ProgrammingError: 1064 (42000): SQL语法有误;请查看对应MariaDB服务器版本的手册,了解在'%s'附近使用的正确语法。
修正后的代码:
x = int(id_[0]) select_query = "SELECT * FROM files WHERE id = %s" # 将单个参数包装为元组(末尾逗号不可省略) cursor.execute(select_query, (x,)) results = cursor.fetchone()
原因说明:
直接传单个变量x时,驱动会错误地将其拆解为多个参数处理,导致SQL语句中的%s没有被正确替换,最终触发语法错误。把参数放进元组(或列表)里,才能让驱动正确完成参数绑定,避免语法问题。
内容的提问来源于stack exchange,提问作者Tamer Vassib
相关产品推荐
相关产品推荐

