PHP中的子句ARRAY - MongoDB

时间:2016-06-09 08:12:46

标签: php mongodb

我对PHP中的Where子句有一个问题 - MongoDB。

我在这个论坛中搜索并获取一些信息。

我的代码是:

$condizioneMongoDB = "array('chrom'=>'chr7' )";
$whereClause = eval("\$str = \"$condizioneMongoDB\";");
$retval = $collection->distinct("p_id", $whereClause);

完全忽略Where子句。

这个静态代码工作:

$retval = $collection->distinct("p_id", array('chrom'=>'chr7' ));

2 个答案:

答案 0 :(得分:1)

  

$ whereClause = eval(“\ $ str = \”$ condizioneMongoDB \“;”);

等于$str = "array('chrom'=>'chr7' )"
但是你想要$str = array('chrom'=>'chr7')

你应该省略引用。

此外,您需要从eval返回值才能使用它,或者您可以直接使用eval中的变量。

$condizioneMongoDB = "array('chrom'=>'chr7' )";
$whereClause = eval("return $condizioneMongoDB;");
$retval = $collection->distinct("p_id", $whereClause);

或者:

$condizioneMongoDB = "array('chrom'=>'chr7' )";
eval("\$whereClause = $condizioneMongoDB;");
$retval = $collection->distinct("p_id", $whereClause);

答案 1 :(得分:0)

此行看起来不对

$condizioneMongoDB = "array('chrom'=>'chr7' )";

为什么要将数组放在双引号中?改变如下

 $condizioneMongoDB = array('chrom'=>'chr7' );