MDB_QueryTool : Construction faussée
Bonjour,
Voilà, je bloque depuis des heures sur un problème de fou. J'utilise postgresql, via l'ORM MDB_QueryTool de PEAR.
J'ai une table (et donc une classe ORM) appellé scores (pour la table) ou Scores (pour la classe). Voici le code de la classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
<?php
// Définition de la racine
$racine = "../";
$racineConfig = $racine."config/";
// Instantiation des paramètres, inclusions des fichiers requis, démarrage de la session
@include_once $racineConfig."init.php";
/**
* Cette constante définit la table liée à la classe.
*/
define('TABLE_SCORES', 'scores');
/**
* Classe de gestion de la table scores dans la base de données.
*/
class Scores extends MDB_QueryTool{
/**
* Définit la table en lien avec la classe
* @var string
*/
var $table = TABLE_SCORES;
/**
* Définit la sequence pour la table
* @var string
*/
var $sequenceName = TABLE_SCORES;
/**
* Définit la clé primaire de la table en lien avec la classe
* @var string
*/
var $primaryCol = 'score_id';
/**
* Construit l'objet voulu en appelant le constructeur du parent MDB_Querytool
*/
public function __construct(){
parent::__construct(Config::$dsn, Config::$optionsDbConnect, Config::$versionMdb);
parent::useResult('object');
}
/**
* Définit un nom court pour la table
* @var array
*/
var $tableSpec = array(
array('name' => TABLE_SCORES, 'shortName' => 'scores')
);
}?> |
Maintenant voici le code qui plante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
class AjaxProcess{
/**
* Fonction permettant d'afficher les scores de manière lisible.
* @static
* @param Array $args tableau contenant les paramètres
* @return mixed
*/
static function displayScores(&$args){
/* Liste des arguments :
* 0 : Début de la selection des scores
* 1 : Limit du nombre de score à selectionner
*/
// Instantiation de la variable de retour
$return = null;
$start = (!empty($args[0]) && (int) $args[0] > 0) ? (int) $args[0] : 1;
$limit = (!empty($args[1]) && (int) $args[1] > 9) ? (int) $args[1] : 10;
// Instantiation et initialisation de l'objet ORM
$tableScore = new Scores();
$tableScore->reset();
//echo $tableScore->getQueryString(); // Requette merdique !
// Test nombre de score
if((int) $tableScore->getCount() > 0){
// Instanciation variables de retour
$tabScore = array();
//var_dump($tableScore); // Bien construit
// Requete
$tableScore->setOrder("scores_score", true);
//var_dump($tableScore); // Bien construit
//echo $tableScore->getQueryString(); // Requette merdique
$tableScore->setLimit($start, $limit);
//echo $tableScore->getQueryString(); // Requette s'affiche pas
//var_dump($tableScore); // Bien construit
// Résultat
$allScores = $tableScore->getAll();
var_dump($allScores); // False !!!!
// ARET DU PROGRAMME ICI (erreur 500)
// Parcour des résultats
while($thisScore = $allScores->getNext()){
$tabScore[count($tabScore)]["pseudo"] = $thisScore->pseudo;
$tabScore[count($tabScore)]["score"] = $thisScore->score;
$tabScore[count($tabScore)]["date"] = $thisScore->date;
}
echo "vi ?"; // Non afficher
// Encodage json du tableau des scores
$return = json_encode($tabScore);
var_dump($return); // Non afficher
}
return $return;
}
// [..] Fin de la class
} |
AjaxProcess::displayScores(array("pseudo", 20)); Fait planter le serveur (erreur 500) à l'endroit indiqué.
Merci d'avance...