Python中的MySQL查询错误

Python中的MySQL查询错误,python,mysql,Python,Mysql,我在运行以下代码时遇到了MySQL语法错误: cnx=mysql.connector.connect(**连接) cursor=cnx.cursor() 选择类别=(“从类别中选择`id`、`name`、`url`,其中`id\u父项`=%s”) cursor.execute(选择_类别,(4)) 错误: mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“%s”附近

我在运行以下代码时遇到了MySQL语法错误:

cnx=mysql.connector.connect(**连接)
cursor=cnx.cursor()
选择类别=(“从类别中选择`id`、`name`、`url`,其中`id\u父项`=%s”)
cursor.execute(选择_类别,(4))
错误:

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


如何修复它?

问题是python将
(4)
解释为4,并且参数需要是一个iterable。尝试更新到以下位置:

cursor.execute( select_categories, (4, ) )

4后面的逗号将迫使python将其解释为元组。

问题在于python将
(4)
解释为4,并且参数需要是一个iterable。尝试更新到以下位置:

cursor.execute( select_categories, (4, ) )

4后面的逗号将迫使python将其解释为元组。

它不应该是
“从类别中选择id、名称、url”,id\u parent=%s
@Maddy:No。如果我设置
select\u categories=(“从类别中选择'id',name','url',其中'id\u parent'=4”)
您的参数应该是序列。一个元素的元组是
(4,)
,但您有
(4)
,这是一个标量。@Parfait:它有效。谢谢不应该是
“从类别中选择id、名称、url”,id\u parent=%s
@Maddy:No。如果我设置
选择类别=(“从类别中选择id”、“名称”、“url”,其中“id\u parent”=4”)
您的参数应该是顺序。一个元素的元组是
(4,)
,但您有
(4)
,这是一个标量。@Parfait:它有效。谢谢