Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js-与php的区别_Node.js - Fatal编程技术网

node.js-与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

我有以下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 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个结果。。但这超出了这个问题的范围,啊哈!非常感谢。