node.js-与php的区别
我有以下PHP代码:node.js-与php的区别,node.js,Node.js,我有以下PHP代码: $IDs = implode(",", array_keys($result["matches"])); $sql = "SELECT * FROM table WHERE id IN ($IDs)"; 我正在将其“转换”为Node.js,我想内爆会变成array.join,所以我尝试了以下方法: var ids = Object.keys(answer['matches']).join(","); var sql = "SELECT * FROM xml_it WHER
$IDs = implode(",", array_keys($result["matches"]));
$sql = "SELECT * FROM table WHERE id IN ($IDs)";
我正在将其“转换”为Node.js,我想内爆会变成array.join,所以我尝试了以下方法:
var ids = Object.keys(answer['matches']).join(",");
var sql = "SELECT * FROM xml_it WHERE id IN (" + ids + ")";
现在,如果我回显PHP$sql变量,就会得到预期的结果:
SELECT * FROM table WHERE id IN (3187,3220,3233,3245,3246,3251,3253,3256, ...
但是,使用node.js,我得到了以下结果:
SELECT * FROM xml_it WHERE id_xml IN ([0,1,2,3,4, ...
答案['matches']显然是相同的结果(基本上是斯芬克斯搜索结果)
你知道我为什么不把它当作字符串而是钥匙吗
$result和var answer的数据如下所示:
[{"doc":3187,"weight":1,"attrs":{}},{"doc":3220,"weight":1,"attrs":{}},{"doc":3233,"weight":1,"attrs":{}},
这应该起作用:
var matches = answer['matches'].map( function( o ) {
return o.doc;
});
var ids = matches.join(",");
var sql = "SELECT * FROM xml_it WHERE id IN (" + ids + ")";
必须绘制文档字段,因为结构不同phew!现在它开始工作了!!我现在需要弄清楚的是,为什么它在node上返回20个结果,在php上返回100个结果。。但这超出了这个问题的范围,啊哈!非常感谢。