我在PHP中有以下代码:
$IDs = implode(",", array_keys($result["matches"]));
$sql = "SELECT * FROM table WHERE id IN ($IDs)";
我正在“翻译”它到Node.js,我想implode变成了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, ...
答案['匹配']显然是相同的结果(它基本上是一个Sphinx搜索结果)
我知道为什么我不把它作为字符串而是作为对象?
提前致谢。
答案 0 :(得分:1)
我认为您需要使用Object.keys(obj)
来反映array_keys
所做的事情。
现在你抓住了整个物体,而不仅仅是钥匙。