【问题标题】:How do I escape data in Javascript for a client-side database like WebDB or Google Gears?如何在 Javascript 中为 WebDB 或 Google Gears 等客户端数据库转义数据?
【发布时间】:2011-05-18 23:11:20
【问题描述】:
【问题讨论】:
标签:
javascript
database
html
google-gears
web-sql
【解决方案1】:
如果您使用占位符,则不必担心引用/转义。所以这个:
resultSet = db.execute (
'INSERT INTO MYTABLE VALUES (?, ?, ?) WHERE id=?',
[some, variables, that_you_got_from, somewhere]
)
原样没问题。如果您尝试通过将一堆字符串粘贴在一起来构建 SQL,那么您将会遇到问题,所以不要这样做。但是,在某些情况下,您需要将字符串粘贴在一起以获取 SQL,但有一些安全的方法可以解决;这样的事情往往是一种常见的情况,您可以同时使用占位符和字符串连接:
var list = some_array_of_unknown_size_and_origin;
var qs = [ ];
for(var i = 0; i < list.size; ++i)
qs.push('?');
var rs = db.execute(
'UPDATE some_table SET col = 'blahblah' WHERE id IN (' + qs.join(',') + ')',
list
);