Пример #1
0
 /**
  * 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;
 }
Пример #2
0
/**
 * 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;
}