hasError() 공개 메소드

Prueft, ob ein Fehler aufgetreten ist.
public hasError ( )
예제 #1
0
/**
 * drop all rex_* tables
 * @return  string    SQL error message
 */
function rex_setup_dropREXtables()
{
    global $REX;
    $err_msg = '';
    // get rex_* tables
    $rt = new rex_sql();
    $rt->setQuery('SHOW TABLES LIKE \'' . $REX['TABLE_PREFIX'] . '%\';');
    $err_msg .= $rt->hasError() ? rex_formated_sqlerror($rt) : '';
    // drop tables
    $dt = new rex_sql();
    foreach ($rt->getArray() as $t) {
        $table = $t['Tables_in_' . $REX['DB']['1']['NAME'] . ' (' . $REX['TABLE_PREFIX'] . '%)'];
        $dt->setQuery('DROP TABLE `' . $table . '`');
        $err_msg .= $dt->hasError() ? rex_formated_sqlerror($dt) : '';
    }
    unset($rt, $dt);
    return $err_msg;
}
예제 #2
0
$REX['GG'] = false;
$REX['HTDOCS_PATH'] = './';
include 'redaxo/include/master.inc.php';
// Dateiname der lokalen Bankleitzahlen-Datei
$_blzfilename = $REX['HTDOCS_PATH'] . 'blz.txt';
// Falls allow_url_fopen aktiviert ist kann die Datei auch direkt vom Server verarbeitet werden
// hierzu einfach die folgende Zeile auskommentieren
//$_blzfilename = 'http://www.bundesbank.de/download/zahlungsverkehr/bankleitzahlen/20100906/blz_20100906.txt';
// SQL zum anlegen der Tabelle
$_sql_create = "\n\tCREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%9999_blz` (\n\t  `blz` int(8) NOT NULL default '0',\n\t  `merkmal` char(1) NOT NULL default '',\n\t  `bezeichnung` varchar(58) NOT NULL default '',\n\t  `plz` varchar(5) NOT NULL default '',\n\t  `ort` varchar(35) NOT NULL default '',\n\t  `kurzbezeichnung` varchar(27) NOT NULL default '',\n\t  `pan` varchar(5) NOT NULL default '',\n\t  `bic` varchar(11) NOT NULL default '',\n\t  `prz` char(2) NOT NULL default '',\n\t  `satznr` int(6) NOT NULL default '0',\n\t  `aendkz` char(1) NOT NULL default '',\n\t  `blzloesch` char(1) NOT NULL default '',\n\t  `blznachfolge` int(8) NOT NULL default '0',\n\t  PRIMARY KEY  (`satznr`)\n\t) TYPE=MyISAM;\n\t";
// Tabelle anlegen
$_sql = new rex_sql();
$_sql->debugsql = false;
$_sql_create = str_replace('%TABLE_PREFIX%', $REX['TABLE_PREFIX'], $_sql_create);
$_sql->setQuery($_sql_create);
if ($_sql->hasError()) {
    echo "<br />\n" . 'Error Message: ' . htmlspecialchars($_sql->getError());
    echo "<br />\n" . 'Error Code: ' . $_sql->getErrno();
    echo "<br />\n" . 'Query: ' . $_sql_create;
}
// Tabelle leeren falls schon vorhanden
$_query = 'TRUNCATE TABLE ' . $REX['TABLE_PREFIX'] . '9999_blz';
$_sql->setQuery($_query);
if ($_sql->hasError()) {
    echo "<br />\n" . 'Error Message: ' . htmlspecialchars($_sql->getError());
    echo "<br />\n" . 'Error Code: ' . $_sql->getErrno();
    echo "<br />\n" . 'Query: ' . $_query;
}
// Eingabe-Datei Postleitzahlen öffnen
$_fp = fopen($_blzfilename, 'r');
if (!$_fp) {
예제 #3
0
<?php

/**
 * XO-Form 
 * @author jan.kristinus[at]redaxo[dot]de Jan Kristinus
 * @author <a href="http://www.yakamara.de">www.yakamara.de</a>
 */
// Tabelle anlegen Redaxo 4.0.x
$sql = new rex_sql();
$sql->setQuery("CREATE TABLE IF NOT EXISTS `rex_xform_email_template` (\n  `id` int(11) NOT NULL auto_increment,\n  `name` varchar(255) NOT NULL default '',\n  `mail_from` varchar(255) NOT NULL default '',\n  `mail_from_name` varchar(255) NOT NULL default '',\n  `subject` varchar(255) NOT NULL default '',\n  `body` text NOT NULL,\n  PRIMARY KEY  (`id`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;\n");
// evtl. Fehler beim Anlegen?
if ($sql->hasError()) {
    $msg = 'MySQL-Error: ' . $sql->getErrno() . '<br />';
    $msg .= $sql->getError();
    // Evtl Ausgabe einer Meldung
    // $rxa_htmlinsert['meldung'] = 'Das Addon wurde nicht installiert, weil...';
    $REX['ADDON']['install']['xform'] = 0;
    $REX['ADDON']['installmsg']['xform'] = $msg;
} else {
    // Installation erfolgreich
    $REX['ADDON']['install']['xform'] = 1;
}
/**
 * Importiert den SQL Dump $filename in die Datenbank
 *
 * @param string Pfad + Dateinamen zur SQL-Datei
 *
 * @return array Gibt ein Assoc. Array zurück.
 *               'state' => boolean (Status ob fehler aufgetreten sind)
 *               'message' => Evtl. Status/Fehlermeldung
 */
function rex_a1_import_db($filename)
{
    global $REX, $I18N_IM_EXPORT;
    $return = array();
    $return['state'] = false;
    $return['message'] = '';
    $msg = '';
    $error = '';
    if ($filename == '' || substr($filename, -4, 4) != ".sql") {
        $return['message'] = $I18N_IM_EXPORT->msg('no_import_file_chosen_or_wrong_version') . '<br>';
        return $return;
    }
    $conts = rex_get_file_contents($filename);
    // Versionsstempel prüfen
    // ## Redaxo Database Dump Version x.x
    $version = strpos($conts, '## Redaxo Database Dump Version ' . $REX['VERSION']);
    if ($version === false) {
        $return['message'] = $I18N_IM_EXPORT->msg('no_valid_import_file') . '. [## Redaxo Database Dump Version ' . $REX['VERSION'] . '] is missing';
        return $return;
    }
    // Versionsstempel entfernen
    $conts = trim(str_replace('## Redaxo Database Dump Version ' . $REX['VERSION'], '', $conts));
    // Prefix prüfen
    // ## Prefix xxx_
    if (preg_match('/^## Prefix ([a-zA-Z0-9\\_]*)/', $conts, $matches) && isset($matches[1])) {
        // prefix entfernen
        $prefix = $matches[1];
        $conts = trim(str_replace('## Prefix ' . $prefix, '', $conts));
    } else {
        // Prefix wurde nicht gefunden
        $return['message'] = $I18N_IM_EXPORT->msg('no_valid_import_file') . '. [## Prefix ' . $REX['TABLE_PREFIX'] . '] is missing';
        return $return;
    }
    // Prefix im export mit dem der installation angleichen
    if ($REX['TABLE_PREFIX'] != $prefix) {
        // Hier case-insensitiv ersetzen, damit alle möglich Schreibweisen (TABLE TablE, tAblE,..) ersetzt werden
        // Dies ist wichtig, da auch SQLs innerhalb von Ein/Ausgabe der Module vom rex-admin verwendet werden
        $conts = preg_replace('/(TABLE `?)' . preg_quote($prefix, '/') . '/i', '$1' . $REX['TABLE_PREFIX'], $conts);
        $conts = preg_replace('/(INTO `?)' . preg_quote($prefix, '/') . '/i', '$1' . $REX['TABLE_PREFIX'], $conts);
        $conts = preg_replace('/(EXISTS `?)' . preg_quote($prefix, '/') . '/i', '$1' . $REX['TABLE_PREFIX'], $conts);
    }
    // Inhalt der /generated Ordner komplett leeren
    rex_generateAll();
    // ----- EXTENSION POINT
    $filesize = filesize($filename);
    $msg = rex_register_extension_point('A1_BEFORE_DB_IMPORT', $msg, array('content' => $conts, 'filename' => $filename, 'filesize' => $filesize));
    // Datei aufteilen
    $lines = explode("\n", $conts);
    $add = new rex_sql();
    $error = '';
    foreach ($lines as $line) {
        $line = trim($line, "\r");
        // Windows spezifische extras
        $line = trim($line, ";");
        // mysql 3.x
        if ($line == '') {
            continue;
        }
        $add->setQuery($line);
        if ($add->hasError()) {
            $error .= "\n" . $add->getError();
        }
    }
    if ($error != '') {
        $return['message'] = trim($error);
        return $return;
    }
    $msg .= $I18N_IM_EXPORT->msg('database_imported') . '. ' . $I18N_IM_EXPORT->msg('entry_count', count($lines)) . '<br />';
    // CLANG Array aktualisieren
    unset($REX['CLANG']);
    $db = new rex_sql();
    $db->setQuery('select * from ' . $REX['TABLE_PREFIX'] . 'clang');
    for ($i = 0; $i < $db->getRows(); $i++) {
        $id = $db->getValue('id');
        $name = $db->getValue('name');
        $REX['CLANG'][$id] = $name;
        $db->next();
    }
    // prüfen, ob eine user tabelle angelegt wurde
    $result = $db->getArray('SHOW TABLES');
    $user_table_found = false;
    foreach ($result as $row) {
        if (in_array($REX['TABLE_PREFIX'] . 'user', $row)) {
            $user_table_found = true;
            break;
        }
    }
    if (!$user_table_found) {
        $create_user_table = '
    CREATE TABLE ' . $REX['TABLE_PREFIX'] . 'user
     (
       user_id int(11) NOT NULL auto_increment,
       name varchar(255) NOT NULL,
       description text NOT NULL,
       login varchar(50) NOT NULL,
       psw varchar(50) NOT NULL,
       status varchar(5) NOT NULL,
       rights text NOT NULL,
       login_tries tinyint(4) NOT NULL DEFAULT 0,
       createuser varchar(255) NOT NULL,
       updateuser varchar(255) NOT NULL,
       createdate int(11) NOT NULL DEFAULT 0,
       updatedate int(11) NOT NULL DEFAULT 0,
       lasttrydate int(11) NOT NULL DEFAULT 0,
       session_id varchar(255) NOT NULL,
       PRIMARY KEY(user_id)
     ) TYPE=MyISAM;';
        $db->setQuery($create_user_table);
        $error = $db->getError();
        if ($error != '') {
            // evtl vorhergehende meldungen löschen, damit nur der fehler angezeigt wird
            $msg = '';
            $msg .= $error;
        }
    }
    // generated neu erstellen, wenn kein Fehler aufgetreten ist
    if ($error == '') {
        // ----- EXTENSION POINT
        $msg = rex_register_extension_point('A1_AFTER_DB_IMPORT', $msg, array('content' => $conts, 'filename' => $filename, 'filesize' => $filesize));
        $msg .= rex_generateAll();
        $return['state'] = true;
    }
    $return['message'] = $msg;
    return $return;
}
 /**
  * @access public
  * @return Returns <code>true</code> on success or <code>false</code> on error
  */
 function delete($recurse = false)
 {
     // Rekursiv löschen?
     if (!$recurse && $this->hasChildren()) {
         return false;
     }
     if ($recurse) {
         $childs = $this->getChildren();
         foreach ($childs as $child) {
             if (!$child->delete($recurse)) {
                 return false;
             }
         }
     }
     // Alle Dateien löschen
     if ($this->hasMedia()) {
         $files = $this->getMedia();
         foreach ($files as $file) {
             if (!$file->delete()) {
                 return false;
             }
         }
     }
     $qry = 'DELETE FROM ' . $this->_getTableName() . ' WHERE id = ' . $this->getId() . ' LIMIT 1';
     $sql = new rex_sql();
     // $sql->debugsql = true;
     $sql->setQuery($qry);
     return !$sql->hasError() || $sql->getRows() != 1;
 }
 /**
  * Fügt dem Feld neue Werte via SQL-Query hinzu.
  * Dieser Query muss ein 2 Spaltiges Resultset beschreiben.
  *
  * @param $query SQL-Query
  * @access protected
  */
 function addSqlValues($query)
 {
     $sql = new rex_sql();
     //      $sql->debugsql = true;
     $result = $sql->getArray($query, MYSQL_NUM);
     if ($sql->hasError()) {
         echo $sql->getError();
     }
     if (is_array($result) && count($result) >= 1) {
         $value = array_shift($result);
         $count = count($value);
         if ($count >= 4) {
             // Add first Option
             $this->addValue($value[0], $value[1], $value[2], $value[3]);
             foreach ($result as $value) {
                 // Add remaing Options
                 $this->addValue($value[0], $value[1], $value[2], $value[3]);
             }
         } elseif ($count == 2) {
             // Add first Option
             $this->addValue($value[0], $value[1]);
             foreach ($result as $value) {
                 // Add remaing Options
                 $this->addValue($value[0], $value[1]);
             }
         } elseif ($count == 1) {
             // Add first Option
             $this->addValue($value[0], $value[0]);
             foreach ($result as $value) {
                 // Add remaing Options
                 $this->addValue($value[0], $value[0]);
             }
         }
     }
 }
예제 #7
0
 /**
  * Speichert den Kurs in die Datenbank.
  * @return String Statusmeldung.
  */
 public function save()
 {
     $query = "INSERT INTO ";
     if ($this->kurs_id > 0) {
         $query = "UPDATE ";
     }
     $query .= $this->table_prefix . 'd2u_kurse_kurse SET ' . 'titel = "' . addslashes($this->titel) . '", ' . 'teaser = "' . addslashes($this->teaser) . '", ' . 'beschreibung = "' . addslashes($this->beschreibung) . '", ' . '`alter` = "' . $this->alter . '", ' . 'bild = "' . $this->bild . '", ' . 'kosten = ' . number_format($this->kosten, 2) . ', ' . 'kosten_erm = ' . number_format($this->kosten_erm, 2) . ', ' . 'datum_von = "' . $this->datum_von . '", ' . 'datum_bis = "' . $this->datum_bis . '", ' . 'uhrzeit = "' . $this->uhrzeit . '", ' . 'zielgruppen_ids = "|' . implode("|", $this->zielgruppen_ids) . '|", ' . 'kurskategorie_id = "' . $this->kurskategorie->kurskategorie_id . '", ' . 'sekundaere_kurskategorie_ids = "|' . implode("|", $this->sekundaere_kurskategorie_ids) . '|", ' . 'ort_id = "' . $this->ort->ort_id . '", ' . 'raum = "' . $this->raum . '", ' . 'terminkategorie_ids = "|' . implode("|", $this->terminkategorie_ids) . '|", ' . 'teilnehmer_max = "' . $this->teilnehmer_max . '", ' . 'teilnehmer_min = "' . $this->teilnehmer_min . '", ' . 'teilnehmer_angemeldet = "' . $this->teilnehmer_angemeldet . '", ' . 'teilnehmer_warteliste = "' . $this->teilnehmer_warteliste . '", ' . 'anmeldung_moeglich = "' . $this->anmeldung_moeglich . '", ' . 'status = "' . $this->status . '", ' . 'url_extern = "' . $this->url_extern . '", ' . 'redaxo_artikel = "' . $this->redaxo_artikel . '", ' . 'kursleiter = "' . $this->kursleiter . '", ' . 'kursnummer = "' . $this->kursnummer . '", ' . 'dokumente = "' . implode(",", $this->dokumente) . '", ' . 'import = "' . $this->import . '", ' . 'updatedate = "' . time() . '"';
     if ($this->kurs_id > 0) {
         $query .= " WHERE kurs_id = " . $this->kurs_id;
     }
     $result = new rex_sql();
     $result->setQuery($query);
     if ($this->kurs_id == 0) {
         $this->kurs_id = $result->getLastId();
     }
     if ($result->hasError()) {
         return "Fehler beim Speichern: " . $result->getError() . PHP_EOL . "Query war: " . $query;
     } else {
         return "Gespeichert: " . $query;
     }
 }
 function checkLogin()
 {
     global $REX;
     $fvs = new rex_sql();
     // $fvs->debugsql = true;
     $userId = $this->getSessionVar('UID');
     $check = parent::checkLogin();
     if ($check) {
         // gelungenen versuch speichern | login_tries = 0
         if ($this->usr_login != '') {
             $this->sessionFixation();
             $fvs->setQuery('UPDATE ' . $this->tableName . ' SET login_tries=0, lasttrydate=' . time() . ', session_id="' . session_id() . '" WHERE login="******" LIMIT 1');
         }
     } else {
         // fehlversuch speichern | login_tries++
         if ($this->usr_login != '') {
             $fvs->setQuery('UPDATE ' . $this->tableName . ' SET login_tries=login_tries+1,session_id="",lasttrydate=' . time() . ' WHERE login="******" LIMIT 1');
         }
     }
     if ($this->isLoggedOut() && $userId != '') {
         $fvs->setQuery('UPDATE ' . $this->tableName . ' SET session_id="" WHERE user_id="' . $userId . '" LIMIT 1');
     }
     if ($fvs->hasError()) {
         return $fvs->getError();
     }
     return $check;
 }