sqlite - SQLite请求中的嵌套引号

标签 sqlite actionscript-3 air

在我的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/

相关文章:

c++ - 在桌面程序中嵌入 NoSQL 文档/EAV 数据库,如 SQLite3,但 NoSQL?

apache-flex - spark List 有没有类似于 mx list 中的 itemsChangeEffect 的东西?

android - 图像不显示在使用 nativePath 的 flex 移动应用程序中

javascript - 是否有关于从浏览器启动 Adob​​e AIR 应用程序的教程?

actionscript-3 - AS3 麦克风隐私设置仅显示 3 个选项卡

javascript - 与 Flex AIR 相比,基于 HTML 的 AIR 应用程序是否同样快速/强大,或者只是一个 "lesser"兄弟?

android - 需要简单的 SQLite 数据库示例

android - 如何简单地从Android中的TimePicker获取选定时间?

sqlite - 如何使用通配符执行SQLite LIKE查询而不是通配符

actionscript-3 - ActionScript/Flex - 在静音时停止录制