2012-09-02 4 views
0

MySQL에서 MongoDB로 데이터베이스를 변환하려고하는데 문제가 있습니다. 쿼리가 MongoDB를 어떻게 찾아야할지 모르겠습니다."or"가 포함 된 많은 쿼리

$hd=''; 
    $count = count($args[1]); 
    for($i=0;$i<$count-1;$i++){ 
     $hd.="playerId='" . $args[1][$i] . "' OR "; 
    } 
    $hd.="playerId='".$args[1][$count-1]."'"; 
    $h1=mysql_query(sprintf("SELECT * FROM player where ".$hd)); 

누구나 수정 방법을 알고 계십니까? 에 관해서는

$h1 = mysql_query(
    "SELECT * FROM player where playerId IN (" . implode(", ", $args[1]) . ")" 
); 

을 :

+0

입니다. :) –

+2

"고치는 법"이란 무엇을 의미합니까? 이것은 재 작성 요청과 비슷하게 보이며 이전 시도는 없습니다. [MongoDB queries] (http://www.mongodb.org/display/DOCS/Advanced+Queries)를 참고하면 먼저 [PHP 매뉴얼 섹션] (http://www.php.net/)을 참조하십시오. manual/ko/mongo.sqltomongo.php). – mario

+1

이것은 Mongo가 아닌 SQL에 대한 쿼리 일뿐입니다. 당신 질문에 무슨 뜻 이시죠? 또한 당신은'mysql_' 드라이버가 곧 비난 받기 쉬운 코드를 사용하고 있습니다. – Sammaye

답변

0

귀하의 질문은 내가 MongoDB에 익숙한 아니지만, 대신 여러 사용하는 OR 당신이 당신의 쿼리를 더 읽기 쉽게한다 IN() 문을 사용할 수 있습니다 Mongo db select where in array of _id?

유사하다 MondoDB 나는 이것이 당신에게 당신이 필요한 결과를 가져다 줄 것이라고 생각합니다 :

$m = new Mongo(); 
$db = $m->selectDB("database"); // your db 
$mc = new MongoCollection($db, 'player'); 
$mc->find(
    array(
     'playerId' => array(
      '$in' => $args[1] 
     ) 
    ) 
); 

당신은 몇 가지 문법 오류를 발견하면, 나를 쏘지 마세요 : 하나는 PDO 같은 DAL을 사용해야하는 이유

+1

$는 그와 같이 작동하지 않습니다 ... 그것은 $ in => $ args'와 같은 배열입니다. – Sammaye

+0

@Sammaye 내가 말했듯이, 저는 아닙니다. MongoDB // 편집 : 코드를 바꿨습니다;) –

+0

PHP의 mysql_ 기능은 버전 5.3.0에서 더 이상 사용되지 않습니다. 사용자'mysqli_'. – jurgemaister

관련 문제