将一个PDO类与Mysqli一起使用会得到意想不到的结果。检查这个比较应该产生相同的结果imho。
$versions
是一个包含元素8,9或两者的数组。
在下面的两个示例中,数组是:
Array
(
[0] => 9
[1] => 8
)
使用此(更正确)PDO方法:
function getQuestions($nrOfQuestions = 25, $versions){
$versions = implode(",", $versions);
$args= array(
"nrOfQ" => $nrOfQuestions
,"versions" => $versions
);
return $db->query("SELECT * FROM `" . TABLE . "` WHERE `version` IN (:versions) && `qc` >= 1 ORDER BY RAND() LIMIT :nrOfQ", $args);
}
意外结果 所有的结果都是第9版(我希望8这里有aswel)
使用这个(脏?)连接方法:
function getQuestions($nrOfQuestions = 25, $versions){
$versions = implode(",", $versions);
$args= array(
"nrOfQ" => $nrOfQuestions
);
return $db->query("SELECT * FROM `" . TABLE . "` WHERE `version` IN (" . $versions . ") && `qc` >= 1 ORDER BY RAND() LIMIT :nrOfQ", $args);
}
结果符合预期 :结果是预期的随机版本8和9。
我的问题是:
为什么结果集中存在差异?
在两种情况下,查询中的IN子句应为(9,8)
,但会产生不同的结果。