我实际上使用mysql模块来查询我的数据库,我遇到了问题。实际上,我需要转义一个完整的对象并在mysql可以理解的查询中解析它。
实际上,我有:
getByCriteria: (collectionName, criteria)->
sql = 'SELECT * FROM ?? WHERE ?'
inserts = [collectionName, criteria]
sql = MySql.format(sql, inserts)
deferred = Q.defer()
MysqlAdapter.CONNECTION.query(sql, (err, rows, fields)->
console.log err
if err
deferred.reject(new Error(err))
else
deferred.resolve(rows)
)
return deferred.promise
但是console.log(sql)打印:
SELECT * FROM user WHERE username = 'admin', id=1
所以我猜到了" Mysql.format"返回INSERT / UPDATE SQL操作的字符串。 如何使用mysql完成它,而无需使用自制解决方案解析整个字符串?
提前谢谢
答案 0 :(得分:1)
我担心MySql.format()
非常简单(https://github.com/felixge/node-mysql/blob/master/lib/protocol/SqlString.js#L67),因此您需要自己设置格式。
请记住使用MySql.escape()
和MySql.escapeId()
您需要与SqlString.objectToValues()
https://github.com/felixge/node-mysql/blob/master/lib/protocol/SqlString.js#L109类似的内容,但其值与AND
而不是,