我试图弄清楚如何创建一个“存储库”文件(用于symfony2用户),其中我将放置所有特殊的行为查询。
我有一个简单的db shema:
我希望在我的用户Y上检索具有关系X的用户,因此在sql中,它如下所示:
var sql = 'SELECT u.email, u.id
FROM user u
INNER JOIN UserXUser uxu ON uxu.toUser_id = u.id
WHERE uxu.relation_id = 1 AND uxu.fromUser_id = '+id我应该在哪里创建这个方法?我尝试了db/shema.js和app/model/user.js,但没有成功。我在这里发现Using arbitrary mySQL Query with JugglingDB?应该使用shema对象来使用“查询”,我可以在哪里和如何使用它?
回调是否如下所示:
function(err, data) {...}在这种情况下,有关于代码分离的最佳实践吗?
附加问题:是否有一种方法将参数绑定-- PDO方式--使用jugglingdb?
谢谢大家。
发布于 2014-11-24 20:22:42
可以使用jugglingdb和compoundjs执行任意查询。如果您使用复合use,则只需使用compound.models.user.schema.adapter.query()即可。应该将复合对象解析为用户模型,这意味着您可以访问许多其他方法。在模型中使用此查询的方法是使用以下代码在用户模型中创建一个方法:
var sql = 'SELECT u.email, u.id
FROM user u
INNER JOIN UserXUser uxu ON uxu.toUser_id = u.id
WHERE uxu.relation_id = 1 AND uxu.fromUser_id = '+id
compound.models.user.schema.adapter.query(sql, function(err, data) {
if(error) {
console.log(error)
} else {
//Enjoy your data
}
})当它覆盖杂耍数据库引号转义程序时,请注意sql注入,确保您的id变量已被检查和清除。
https://stackoverflow.com/questions/18429825
复制相似问题