2012-09-12 49 views
1

我在PHP下面的代碼: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 WHERE id IN (" + ids + ")"; 

現在,如果我呼應PHP $ SQL變量,我得到預期的結果:

SELECT * FROM table WHERE id IN (3187,3220,3233,3245,3246,3251,3253,3256, ... 

,但使用的是Node.js,我摹ETTING這樣的:

SELECT * FROM xml_it WHERE id_xml IN ([0,1,2,3,4, ... 

答案[「匹配」]明明是同樣的結果(這基本上是一個獅身人面像搜索結果)

任何想法,爲什麼我沒有得到它作爲一個字符串,但作爲對象?

在此先感謝。

回答

1

我認爲您需要使用Object.keys(obj)來反映array_keys的功能。

現在你抓住整個物體,而不僅僅是鑰匙。

+0

哦,對!完全錯過了!它現在正在工作!很容易錯過這樣的小事! –

+0

只需給我10分鐘就可以標出你的正確答案 –

+0

呃,我似乎仍然有問題。與固定的代碼你玩我,我得到的PHP的正確的ID(如2356,4658等),但在節點上,我得到0,1,2,3,...等等。我想這是因爲我使用Object.keys,它應該是Object.values。但它不起作用,它給了TypeError:Object function Object(){[native code]}沒有方法'values' –