2014-02-21 3 views
0
$SearchParam = $_GET["tag"]; 
$strcount = substr_count($SearchParam, ' '); 
// Code to get the tag strings and create the search parm accordingly 
if ($strcount > 0) 
{ 
$fruitQuery = "'$" ."and' => array("; 
for ($i = 1; $i <= $strcount; $i++) 
{ 
    $strfind = strpos($SearchParam,' '); 
    $fruitQuery = $fruitQuery . "array('ta' => " . "'" .substr($SearchParam,0,$strfind) . "'),"; 
    $SearchParam = substr($SearchParam,$strfind+1,strlen($fruitQuery)); 
    if ($i == $strcount) 
    { 
     $fruitQuery = $fruitQuery . "array('ta' => " . "'" . $SearchParam . "'))"; 
    } 
} 
} 
else 
{ 
$fruitQuery = array('ta' => $SearchParam); 
} 
$m = new Mongo(); 
$db = $m->selectDB('wikisrch'); 
$collection = new MongoCollection($db, 'dailymotion'); 
//$cursor = $collection->find($fruitQuery)->limit(12); 
$cursor = $collection->find(array($fruitQuery)); 
var_dump($db->lastError()); 

Это мой код, и я создаю динамический запрос к базе данных mongodb на основе параметра поиска. При создании динамического запроса он возвращает его как ошибку.

Это строка, генерируемая в $ fruitQuery. Где вводится «образ жизни камеры» '$ and' => array ('ta' => 'camera'), array ('ta' => 'lifestyle'))

Это последнее сообщение об ошибке , массив (4) {["n"] => int (0) ["connectionId"] => int (1) ["err"] => NULL ["ok"] => float (1)}

Когда я заглянул в консоль Mongod, он отобразил следующее сообщение. $ ERR: "недопустимый оператор: $ и, код 10068.

Не могли бы вы помочь мне решить эту проблему

+0

Можете ли вы дать SQL синтаксис запроса... ? –

+0

Sql? Вы сделали мой день! – heinob

+0

Ожидаемый sql-запрос - это выбор * из db.dailymotion, где ta = 'camera' и ta = 'lifestyle' выбирают только первые 10 строк; – user3138111

ответ

0

Это происходит из-за ошибки в JavaScript-код:.

$ fruitQuery =" '$ «» и»=> Array ("; Он бросает ошибку: „недостающее имя после того, как оператор“

Позвольте мне знать, если это решит проблему

+0

Нет. Я конкатенирую запрос ниже, и он приходит, как показано ниже в конце. '$ and' => array (array ('ta' => 'camera'), array ('ta' => 'lifestyle')) Я считаю, что это должно быть проблемой. Ошибка также в том, что $ и не распознается – user3138111

Смежные вопросы