SQL查询在原始sql中工作但不在php中

时间:2016-08-02 15:45:34

标签: php mysql sql-server

我有一个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;
    }
}

0 个答案:

没有答案