Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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
Django/Python中的类SQL_Python_Sql_Django - Fatal编程技术网

Django/Python中的类SQL

Django/Python中的类SQL,python,sql,django,Python,Sql,Django,我正在尝试运行如下查询: SELECT * FROM MyTable WHERE FirstName LIKE '%[user inputted value here]%' OR LastName LIKE '%[that same user inputted value]%' AND UserID = some number 当我使用cursor.execute()运行查询时,输入的值将被转义和引用,这将导致运行错误的查询。有没

我正在尝试运行如下查询:

SELECT * 
FROM 
    MyTable 
WHERE 
    FirstName LIKE '%[user inputted value here]%' 
    OR 
    LastName LIKE '%[that same user inputted value]%' 
    AND 
    UserID = some number
当我使用cursor.execute()运行查询时,输入的值将被转义和引用,这将导致运行错误的查询。有没有办法防止用户输入的值被引用


我更喜欢不使用Django的ORM的解决方案,因为实际查询比我的示例复杂得多

在您的查询中使用
foo\uuuu contains=realvaluehere

嗯,看起来我高估了API的逃逸性。这正是我想要的

# add wildcards to query, these are **not** escaped
q = "%" + q + "%"
cursor = connection.cursor()
cursor.execute("SELECT * 
                FROM MyTable 
                WHERE 
                  LastName LIKE %s 
                  AND 
                  FirstName LIKE %s 
                  AND 
                  UserID = %s", [q, q, user_id])
results = cursor.fetchall()

这是MySQLdb吗?你能告诉我们“转义和引用”是什么意思吗?问题是什么?有一个很好的机会,它可以做到使用ORM。。。