在我的AIR应用程序中,我使用SQLite数据库。在某些时候,我需要传递带有引号的请求。
我正在使用正则表达式来像这样逃避它们:
public static function escapeQuotes(str:String):String
{
return str.replace(/"/g, '\\"');
}
但这不起作用。我仍然收到错误。
我的reequest看起来像这样:
SELECT * FROM Prof_Eng_Russ WHERE english || english_keywords LIKE "%something \"name\"%"
我得到这个错误:
错误#2044:未处理的SQLErrorEvent :。 errorID = 3115,operation = execute,message =错误#3115:SQL错误。 ,details =“名称”附近:语法错误
最佳答案
SQL不使用反斜杠进行转义。
转义的引号将加倍,但使用参数更容易:
sql = new SQLStatement();
sql.sqlConnection = ...;
sql.text = "SELECT * FROM Prof_Eng_Russ WHERE english || english_keywords LIKE @pattern";
sql.parameters["@pattern"] = "%something \"name\"%";
(这是一个根据ActionScript规则转义的ActionScript字符串。)
关于sqlite - SQLite请求中的嵌套引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27443317/