2015-11-07 111 views
0

我有與MongoDB的工作有代碼的時候用戶與他的Steam帳號登錄MongoDB的PHP遠程聯接

<?php 
if(isset($_SESSION["steamid"])) { 
include_once('steamauth/userInfo.php'); 
    $connection = new MongoClient(); 
    $collection = $connection->selectDB('admin')->selectCollection('site_users'); 
    $list = $collection->find(); 
    $steam_list = array(); 
    foreach($list as $key => $value){ 
     $steam_list[] = $value['steamid']; 
    } 

    if(!in_array($_SESSION['steamid'],$steam_list)){ 
     $collection->save(array('steamid' => $_SESSION['steamid'],'name' => $_SESSION['steam_personaname'],'ip' => $_SERVER['REMOTE_ADDR'])); 
    } 

?> 

這就是意味着連接到MongoDB的 第一個問題在這裏的代碼嘗試連接到一個腳本當地MongoDB的服務器如果是的,我想要改造這個連接到遠程聯接所以ICAN使用MongolabDb它主機,等着你幫助謝謝你們:)

回答

0

MongoCollection ::找到方法的返回MongoCursor

需要轉換結果。 iterator_to_array

<?php 
if(isset($_SESSION["steamid"])) { 
    include_once('steamauth/userInfo.php'); 
    $connection = new MongoClient(); 
    $collection = $connection->selectDB('admin')->selectCollection('site_users'); 
    $cursor = $collection->find(); 
    $list=iterator_to_array($cursor) 
    $steam_list = array(); 
    foreach($list as $key => $value){ 
     $steam_list[] = $value['steamid']; 
    } 

    if(!in_array($_SESSION['steamid'],$steam_list)){ 
     $collection->save(array('steamid' => $_SESSION['steamid'],'name' => $_SESSION['steam_personaname'],'ip' => $_SERVER['REMOTE_ADDR'])); 
    } 

?> 
+0

你好穆特魯你的答案,但這裏是遠程聯接,我想用外部MongoDB的服務器(Mongolab) – DzYasser

+0

'$連接=新MongoClient(「mongodb的:// @ ds057877.mongolab。 COM:/「);' [http://docs.mongolab.com/connecting/#connect-string](http://docs.mongolab.com/connecting/#connect-string) –