我对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' ));
答案 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' );