Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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,SQLite:x27;%中的撇号s';_Python_Sqlite_Apostrophe - Fatal编程技术网

Python,SQLite:x27;%中的撇号s';

Python,SQLite:x27;%中的撇号s';,python,sqlite,apostrophe,Python,Sqlite,Apostrophe,尝试执行SQLite3查询时出现语法错误。问题是因为变量inputPattern包含的 功能是: def searchForExactEnglishToCzechTranslation(inputPattern,db): if "\'" in inputPattern: inputPattern.replace("'","''") result = db.execute("SELECT czech FROM translations WHERE english='

尝试执行SQLite3查询时出现语法错误。问题是因为变量inputPattern包含的

功能是:

def searchForExactEnglishToCzechTranslation(inputPattern,db):
    if "\'" in inputPattern:
        inputPattern.replace("'","''")
    result = db.execute("SELECT czech FROM translations WHERE english='%s'"  % (inputPattern)).fetchall()
我正试着换掉那个牌子,但还是不起作用


你能给我一个建议吗?谢谢

不要使用插值;使用SQL参数:

def searchForExactEnglishToCzechTranslation(inputPattern,db):
    result = db.execute("SELECT czech FROM translations WHERE english=?",
                        (inputPattern,)).fetchall()
这负责引用(
没有被引号包围)和转义

引述:

通常,SQL操作需要使用Python变量中的值。您不应该使用Python的字符串操作来组装查询,因为这样做是不安全的;它使您的程序容易受到SQL注入攻击(有关可能出错的幽默示例,请参阅)

相反,使用DB-API的参数替换。将
作为占位符放置在要使用值的任何位置,然后提供一个值元组作为游标的
execute()
方法的第二个参数。(其他数据库模块可能使用不同的占位符,例如
%s
:1


不要使用插值;使用SQL参数:

def searchForExactEnglishToCzechTranslation(inputPattern,db):
    result = db.execute("SELECT czech FROM translations WHERE english=?",
                        (inputPattern,)).fetchall()
这负责引用(
没有被引号包围)和转义

引述:

通常,SQL操作需要使用Python变量中的值。您不应该使用Python的字符串操作来组装查询,因为这样做是不安全的;它使您的程序容易受到SQL注入攻击(有关可能出错的幽默示例,请参阅)

相反,使用DB-API的参数替换。将
作为占位符放置在要使用值的任何位置,然后提供一个值元组作为游标的
execute()
方法的第二个参数。(其他数据库模块可能使用不同的占位符,例如
%s
:1


@罗皮:尊重是相互的;查看和/或打开Python并键入
import antigravity
@roippi:尊重是相互的;查看和/或打开Python并键入
import antigravity