database - 如何在 Adob​​e Air 中的 LIKE 运算符模式中使用命名参数

标签 database sqlite air adobe

我想在 LIKE 运算符模式中使用命名参数占位符,以便正确转义参数字符串。

这是我使用 at-param 占位符修改后的代码:

var stmt = new air.SQLStatement();

stmt.text = "SELECT * FROM comments WHERE title LIKE '%@search%';";

stmt.parameters["@search"] = "argument string";

stmt.execute();

这样做会产生一个带有以下详细信息的 SQLError

message: Error #3315: SQL Error.

details: '@search' parameter name(s) found in parameters property but not in the SQL specified

按照 Mike Petty 的建议,我尝试了:

stmt.text = 'SELECT * FROM comments WHERE title LIKE "@%search%";';

产生相同的 SQL 错误详细信息。

文档有这个:

expr ::= (column-name | expr) LIKE pattern

pattern ::= '[ string | % | _ ]'

我怀疑它是由于引用而被跳过的,关于如何让它工作有什么想法吗?

最佳答案

找到了一个解决方案,基本上不是这样的:

var stmt = new air.SQLStatement();
stmt.text = "SELECT * FROM comments WHERE title LIKE '%@search%';";
stmt.parameters["@search"] = "argument string";
stmt.execute();

您必须为整个 LIKE 运算符模式放置一个占位符并将该模式​​绑定(bind)为参数。

var stmt = new air.SQLStatement();
stmt.text = "SELECT * FROM comments WHERE title LIKE @search;";
stmt.parameters["@search"] = "%" + userInput + "%";
stmt.execute();

关于database - 如何在 Adob​​e Air 中的 LIKE 运算符模式中使用命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10937110/

相关文章:

ruby-on-rails - Postgres 无法连接到服务器

sql - 如何在 Sqlite 中按周号分组并获取周号的开始日期和结束日期?

air - NetConnection 调用时 Adob​​e Air 崩溃

actionscript-3 - Adobe Air AS3,配置窗口,profiler 建议库代码

MySQL表结构可视化?

mysql - 计算 mySQL 中每一行的出现次数

mysql - 对多个表使用 NOT IN 语句的简化方法

java - 将 Drawable 转换为 BLOB 数据类型

android - 如何在服务器上存储本地 SQLite 数据库

java - 如何将第三方 jar 文件添加到我的 android 应用程序 jar 文件中?