【发布时间】:2011-05-17 16:25:08
【问题描述】:
我确定这是一个基本问题,但是我已经在谷歌搜索了一段时间,找不到满意的答案..
我习惯于用 PHP 编写 MySQL 选择查询,然后简单地抓取结果,循环遍历每一行,并在循环内根据每一行的列值进行进一步的查询。
但是,我现在正在使用 javascript 服务器端代码,它依赖于您传递查询的 SQL 对象,然后是在查询运行后将调用的回调函数。
我对一些范围界定问题以及如何最好地干净地做到这一点感到困惑。例如,我不想做这样的事情:
SQL.query("select * from blah", function(result) {
for(var i = 0; i < result.length; i++) {
SQL.query("select * from blah2 where i =" + result[i].property, function(result2) {
//now how do I access result from here? I know this isn't scoped correctly
});
}
});
编写这种嵌套 SQL 查询且没有范围问题/混乱代码的标准方法是什么?谢谢!
【问题讨论】:
-
正如每个人都指出的那样,您的代码在语法上很好——但是您应该考虑一个严重的问题,它源于 javascript 的异步特性。详情请看我下面的回答。
-
谢谢大家。正如许多人注意到的那样,结果的范围很好,让我感到困惑的是人们指出的问题,即我指向最终的增量计数,这导致了问题。我知道异步问题,感谢 Lee 提供的解决方法。
标签: javascript scope serverside-javascript