Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中原始MySQL查询中的语法错误_Python_Mysql_Django - Fatal编程技术网

Python Django中原始MySQL查询中的语法错误

Python Django中原始MySQL查询中的语法错误,python,mysql,django,Python,Mysql,Django,我在django中使用原始mysql查询,但有限制(限制是动态的,在Url中提到),例如 此限制值来自URLwww.asd.com/qwe/?limit=5,我将此值捕获为limit\u value=request.GET.GET('limit'),当我打印此限制值时,它将打印5表示我可以从URL获取限制值,但当我在上面的select查询中提到它时,如我所示。它会抛出错误 (1064,“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第1行“5”附近使用的正确语法”) 但

我在django中使用原始mysql查询,但有限制(限制是动态的,在Url中提到),例如

此限制值来自URL
www.asd.com/qwe/?limit=5
,我将此值捕获为
limit\u value=request.GET.GET('limit')
,当我打印此限制值时,它将打印5表示我可以从URL获取限制值,但当我在上面的select查询中提到它时,如我所示。它会抛出错误

(1064,“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第1行“5”附近使用的正确语法”)

但若我在文件中提到限制值为
limit\u value=5
,并在select查询中使用它,正如我上面所示,它将起作用

所以这意味着,若我在URL中提到它并将其捕获到文件中,那个么select查询中的限制将不起作用。为什么?或者我还缺什么

我的问题是:

SELECT DISTINCT 
    A.entity_id AS entity_id, 
    A.email AS email,
    A.catquizid AS style_quiz_score,
    A.catquizquesans AS style_quiz_answer,
    A.created_at AS date_joined,
    A.is_active AS is_active,
    B.attribute_id AS attribute_id,
    B.value AS info
FROM customer_entity AS A
inner join  customer_entity_varchar AS B on A.entity_id=B.entity_id 
WHERE B.attribute_id
limit %s

您的
limit\u值是一个字符串,而不是一个整数,因此作为SQL参数,它被加上引号

试试这个:

cursor.execute("some select query limit %s", (int(limit_value),))

您的
limit\u值是一个字符串,而不是一个整数,因此作为SQL参数,它被加上引号

试试这个:

cursor.execute("some select query limit %s", (int(limit_value),))

您的查询格式似乎有误,您想执行什么查询?确定我编辑我的问题,但如果我在文件中提到限制而不是url中,那么相同的查询将起作用。我已编辑了我的问题,请查看
其中的B.attribute\u id
检查此处
其中B.attribute_id=
参数化查询应该是不可变的。您想要
cur.execute(“sql%s”,(param),)
您的查询格式似乎有误,您想要执行什么查询确定我编辑了我的问题,但是如果我在文件中提到限制而不是url中,那么相同的查询将起作用我已经编辑了我的问题,请查看
WHERE B.attribute\u id
检查这里
其中B.attribute_id=
参数化查询应该是不可变的。您需要
cur.execute(“sql%s”,(param),)
是的,这就是问题所在,现在工作正常,谢谢@MartijinYes这就是问题所在,现在工作正常,谢谢@Martijin