用JS和I'I’我没有得到我想要的全部命令
Building a SQLite statement in JS and I'm not getting the full command I want
所以,我正在JS中构建一个SQLite语句。问题是,%似乎正在变成"未定义"+转义下一个字符。以下是确切的代码:
sql语句中出现问题的部分是:
"and s.plainText like '%"+searchText+"%'";
在此之前还有更多内容,但它们都是正确构建的。因此,在程序中,如果我输入以下作为搜索文本:
foo
然后,当我将构建的sql语句输出到控制台时,我得到以下内容:
and s.plainText like 'undefinedoo%'
因此,看起来%"正在变成未定义的,并导致searchText的第一个字母被转义
如何正确构建sql语句的这一部分?我必须使用"cause the statement contains"。我必须使用%cause我需要通配符来查找字符串。
如果JS指的是JavaScript,那么实际情况并非如此。这是jsfiddle:
- http://jsfiddle.net/Ka938/
试试看,你会发现这不是JS的问题。转义可能发生在这个过程的稍后,当它到达服务器或其他地方时。不知道确切的细节来帮助那里。
作为猜测,如果您使用的是PHP和printf,那么发送%f
(其中f
来自您使用的foo
示例)将意味着它需要一个浮点值——不过它会显示一个错误。
附带说明一下,您似乎是在将SQL从客户端发送到服务器。如果是这样的话,那么这样做可能是一个非常糟糕的主意,尤其是如果您没有执行任何SQL转义,因为您没有执行上述操作。看看这里:
- http://en.wikipedia.org/wiki/SQL_injection
了解基本细节。
我不熟悉webOS,但检查一下这个SOq,看看它是否能正确处理SQL参数:
- 在webOS中,我需要一个方法,它将使用输入执行sqlselect命令,并将restults作为数组返回
最终值得做更多关于如何在webOS中正确做到这一点的调查——谷歌是你的朋友。
Mojo.Log命令处理您传递的字符串,有点像C中的printf函数。也就是说,您可以指定一些占位符,这些占位符将用传递的参数的值填充。一个例子就是千言万语:
Mojo.Log.info("My string is '%s' and my number is '%f'", strData, numData);
将打印
My string is 'aaa' and my number is '1'
如果strData是"aaa"并且numData是1。
因此,您的字符串很可能是正确构建的,但打印它时会尝试用参数替换%foo%中的%f。该参数从未被传递,因此它是未定义的。如果使用其他东西而不是"foo"进行测试(请尝试"bbb"),则应该看到正确的输出。
有关更多信息,请查看Mojo.Log.的文档
PS也就是说,这样构造SQL语句不是一个好的做法,所以我不建议这样做。很容易做到,但以后很难阅读和维护:)
- 在多行图表中,在每一行的末尾,我想要一个小圆圈和使用d3.js的端点值
- 我想要相同的函数以两种方式反应
- 如何在javascript中创建一个空的2d数组?下面是我想要创建的一个示例
- 如何用javascript发送多个文件没有jQuery我想要每个文件一个进度条
- 我想要一个类似于网站 https://onlycoin.com/ 的jQuery鼠标滚动动画效果
- 我想要“鼠标滚轮事件延迟”
- 如何格式化我返回的url,使其符合我想要的路由
- 如何使用facet指定我想要的字段
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 我想要输入类型<输入>在javascript中
- Javascript:我可以't找到正确的方式来表达布尔“;如果“;以得到我想要的结果
- 如何用javascript从数组中删除项?我想要一个类似拉的东西来做与推相反的事情
- 正则表达式对我想要做的事情是正确的吗?
- Javascript给定了一个数字,我想要所有可能的组合和元素数组
- 为什么获胜't我的javascript返回我想要的值
- 我想要获取文件输入并将其保存到本地路径的Javascript
- .remove() 只删除内部 HTML,而不是像我想要的那样删除整个标签
- 我想要一个警报框,在倒数计时器中使用 javascript 的 10 分钟
- 我想要一个jquery函数在成功登录时显示隐藏的列表项
- 用JS和I'I’我没有得到我想要的全部命令