HTML 本地存储参数替换转义

Posted

技术标签:

【中文标题】HTML 本地存储参数替换转义【英文标题】:HTML Local Storage parameter replacement escaping 【发布时间】:2011-02-08 21:40:22 【问题描述】:

我正在试验一个简单的基于 html5 本地存储的应用程序,但在我的代码中出现参数替换转义(可能)的问题。

我要执行的 SQL 行是:

SELECT name, title FROM testTable WHERE name LIKE '%test%';

所以我的 javascript 行是这样的:

tx.executeSql( "SELECT name, title FROM testTable WHERE name LIKE '%?%'", [ search_string ],

这失败了(我认为)因为 ? 被视为文字,因此解析器抱怨参数太多(search_string)。

我乐观地尝试使用???["'%", search_string, "%'"],但结果相同。

任何建议 - 我想这很明显,所以请保持温和。

【问题讨论】:

【参考方案1】:

怎么样:

tx.executeSql( 
    "SELECT name, title FROM testTable WHERE name LIKE ?", 
    [ '%'+search_string+'%' ]
    );

【讨论】:

我认为这可能是显而易见的!谢谢内德。我很惊讶它没有以“LIKE %foo%”结尾的 SQL 字符串结尾,我认为这是无效的 - 我认为你需要 ' 围绕字符串。不过,它对我有用。 @speewell 您应该将他的答案标记为已接受的答案,然后可能会放弃投票:) @speedwell:当你像这样使用参数替换时,它会负责构建整个字符串文字,包括必要的引号。 @MattC - 标记为已接受,但显然我需要 15 岁以上的声誉才能投票 - 当我达到那个级别时会回来。

以上是关于HTML 本地存储参数替换转义的主要内容,如果未能解决你的问题,请参考以下文章

Sequelize将日期从UTC转换为本地

我啥时候应该使用 PHP 会话、浏览器本地存储和 JavaScript 对象参数?

Parse:如何重置本地数据存储?

HTML5 LocalStorage 本地存储

HTML5移动开发实战必备知识——本地存储

浏览器本地存储的使用