我有一个SQL查询在phpmyadmin或mysql终端中运行得很好,它给了我想要超过250个结果。但在PHP中,它不返回任何东西。只是一个空集。
我有很多其他的mysql查询工作得很好,其中一些甚至有更多的行,所以我不认为这是问题......
查询:
SELECT `Participations_Reponses`.`reponseOK`
FROM `Participations_Reponses`, `Questions`, `Concours_Questions`, `Participations`
WHERE `Concours_Questions`.`idQuestion`=`Questions`.`idQuestion`
AND `Participations_Reponses`.`numQuestion`=`Concours_Questions`.`numQuestion`
AND `Participations`.`idConcours`=`Concours_Questions`.`idConcours`
AND `Participations`.`idUtilisateur` = 'Pierre-Louis Legrand'
AND `Questions`.`categorie` = 'Musique'
GROUP BY `Questions`.`idQuestion`;
PHP:
$ret = YK_DB::requete($requete, array(YK_Connexion::IdentifiantMembreEnCours(), $pIdCategorie), true);
log_message("size of ret = " . sizeof($ret));
日志表示ret的大小= 0且该集合确实为空。而同样,完全相同的查询在mysql终端中正常工作。
如果需要,requete()方法是:
/**
* Execute une requete
*
* @param string $pRequete Requete MySQL
* @param array $pParametres Paramètres de requete
*
* @return array tableau associatif résultat
*/
static public function requete($pRequete = '', $pParametres = null, $debug = false) {
// Définition globale de l'objet de connexion à la base
if (!isset($GLOBALS['dbh_pdo'])) {
global $SG_Config;
$db_host = $SG_Config['MySQL_host'];
$db_name = $SG_Config['MySQL_db'];
$db_login = $SG_Config['MySQL_login'];
$db_password = $SG_Config['MySQL_password'];
$GLOBALS['dbh_pdo'] = new PDO('mysql:host=' . $db_host . ';dbname=' . $db_name, $db_login, $db_password);
}
//echo $pRequete;
if (!is_null($pParametres)) {
// S'il y a des paramètres à la requète
$sth = $GLOBALS['dbh_pdo'] -> prepare($pRequete, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
if (gettype($pParametres) !== 'array') {
$pParametres = array($pParametres);
}
$sth -> execute($pParametres);
if ($debug) {
echo YK_DB::show($pRequete, $pParametres);
}
return $sth -> fetchAll();
} else {
// Il n'y a pas de paramètre à la requète
$result = $GLOBALS['dbh_pdo'] -> query($pRequete);
$tab = array();
if ($result !== false) {
foreach ($result as $row) {
$tab[] = $row;
}
$result -> closeCursor();
}
return $tab;
}
}