/** * Gère les requêtes MySQL. * * Fait la requête, gère les statistiques sur le nombre de requêtes pour la page. * gère les erreurs et les rapports au besoin. * * Exemple d'utilisation - Exécute une requête et affiche le résultat * <code> * $query = 'SELECT * FROM ' . DB_PREFIX . 'perso WHERE id=801;'; * $result = $db->query($query,__FILE__,__LINE__,__FUNCTION__,__CLASS__,__METHOD__); * echo mysql_result($result,0); * </code> * * @see fctBugReport() * @param string $query Requête MySQL à effectuer * @param string $file En cas d'erreur, permet d'afficher le fichier qui procède à l'appel * @param string $line en cas d'erreur, permet d'afficher la ligne en cause du fichier d'appel * @param string $function en cas d'erreur, permet d'afficher la fonction en cause du fichier d'appel * @param string $class En cas d'erreur, permet d'afficher la classe qui procède à l'appel * @param string $method en cas d'erreur, permet d'afficher la méthode en cause du fichier d'appel * @return Ressource|false Ressource de mysql_query ou false en cas d'échec */ public function query($query, $file = null, $line = null, $function = null, $class = null, $method = null, $byPassCheck = false) { if (!$this->connectionId) { fctBugReport('Erreur de connexion', array('File' => $file, 'Line' => $line, 'ErrNo' => 'n/a', 'Error' => 'Aucune connexion n\'est établie.', 'query' => $query), $file, $line, $function, $class, $method); } if ($this->queryCount > 300 && !$byPassCheck) { fctBugReport('Le système semble être tombé dans une boucle infernale. Arrêt de la page par mesure préventive. Un rapport d\'erreur à été généré.', array('File' => $file, 'Line' => $line, 'ErrNo' => mysql_errno(), 'Error' => mysql_error(), 'query' => $query), $file, $line, $function, $class, $method); } $timerSQL = new Timer(); $timerSQL->start(); //Effectuer la requete $ret =& mysql_query($query, $this->connectionId); //Mettre à jour les statistiques $this->sqlTime += $timerSQL->finish(); $this->queryCount++; //Si la requête s'est mal déroulée, gérer l'erreur de requête. if ($ret === false) { fctBugReport('Erreur de requête', array('File' => $file, 'Line' => $line, 'ErrNo' => mysql_errno(), 'Error' => mysql_error(), 'query' => $query), $file, $line, $function, $class, $method); } //Retourner le résultat de la requête return $ret; }
/** * Create each course in the moodle database * * @param type $courses */ function up_insert_courses($courses) { !empty($courses) or die('No courses to import!'); // counters for created and failed courses $courses_created = 0; $courses_failed = 0; // Start timer for script $ts_timer = new Timer(); $ts_timer->start(); $j = 0; // Start Counter // // cycle through each of the courses and get their information foreach ($courses as $data) { if (UP_DEBUG) { print "<br /><br />ROW: {$j}<br />"; print "COURSEID : " . $data->idnumber . '<br />'; print "SHORTNAME : " . $data->shortname . '<br />'; print "FULLNAME : " . $data->fullname . '<br />'; print "STARTDATE : " . $data->startdate . '<br />'; print "ENDDATE : " . $data->enddate . '<br />'; print "TERMCODE : " . $data->termcode . '<br />'; } $createstatus = up_insert_course($data); switch ($createstatus) { case COURSE_ALREADY_EXISTS: if (UP_DEBUG) { print "COURSE ALREADY EXISTS<br />"; } break; case COURSE_CREATION_FAILED: if (UP_DEBUG) { print "COURSE CREATION FAILED<br />"; $courses_failed++; } break; case COURSE_CREATION_SUCCEEDED: if (UP_DEBUG) { print "COURSE CREATION SUCCEDED<br />"; $courses_created++; } break; case true: print "Testing!"; break; } $j++; } $ts_timer->finish(); // end foreach( $results as $data ) // echo '<br />action took: ' . $ts_timer->getTime() . " seconds.<br />" . "<br /> Courses created: " . $courses_created . " | Courses failed: " . $courses_failed; }