/**
  * @phutil-external-symbol function mysql_multi_query
  * @phutil-external-symbol function mysql_fetch_result
  * @phutil-external-symbol function mysql_more_results
  * @phutil-external-symbol function mysql_next_result
  */
 protected function rawQueries(array $raw_queries)
 {
     $conn = $this->requireConnection();
     $results = array();
     if (!function_exists('mysql_multi_query')) {
         foreach ($raw_queries as $key => $raw_query) {
             $results[$key] = $this->processResult($this->rawQuery($raw_query));
         }
         return $results;
     }
     if (!mysql_multi_query(implode("\n;\n\n", $raw_queries), $conn)) {
         $ex = $this->processResult(false);
         return array_fill_keys(array_keys($raw_queries), $ex);
     }
     $processed_all = false;
     foreach ($raw_queries as $key => $raw_query) {
         $results[$key] = $this->processResult(@mysql_fetch_result($conn));
         if (!mysql_more_results($conn)) {
             $processed_all = true;
             break;
         }
         mysql_next_result($conn);
     }
     if (!$processed_all) {
         throw new Exception(pht('There are some results left in the result set.'));
     }
     return $results;
 }
예제 #2
0
 public function query($SQL)
 {
     if ($SQL !== "") {
         if (stristr($SQL, "call") and stripos($SQL, "call") === 0) {
             @mysql_multi_query($SQL, self::$connection);
             $this->query = @mysql_store_result(self::$connection);
             if (@mysql_more_results(self::$connection)) {
                 @mysql_next_result(self::$connection);
             }
         } else {
             $this->query = mysql_query($SQL, self::$connection);
         }
     }
     return $this->query ? $this->query : false;
 }
예제 #3
0
function irc_scan_log_auslesen($pfad, $datei, $datum)
{
    $scan_typ1 = array("sektorscan", "einheitenscan", "gesch.*zscan", "mili.*scan");
    $scan_typ2 = array("sek", "unit", "g", "mili");
    $scan_timeout = 6;
    // Nach wie vielen Zeilen ein unvolständiger Scan übersprungen wird
    $chan = preg_replace('/(_' . $datum . '\\.log)/', '', $datei);
    $query[0] = 'SELECT tag, zeile FROM gn4irc_scans WHERE chan="' . $chan . '"';
    $eintrag = mysql_multi_query($query, 1, 0);
    $last = $eintrag['zeile'];
    if ($last == "") {
        $last = 0;
    } else {
        if ($eintrag['tag'] != date("d")) {
            $last = 0;
        }
    }
    settype($lsat, "int");
    $last++;
    $z0 = 0;
    $z1 = 0;
    $handle = fopen($pfad . $datei, "r");
    while (!feof($handle)) {
        $z0++;
        $buffer = trim(fgets($handle, 400));
        if ($z0 >= $last) {
            $muster[0] = '/' . chr(3) . '[0-9]{2}\\,[0-9]{2}/';
            $muster[1] = '/' . chr(3) . '/';
            $muster[2] = '/' . chr(32) . '+/';
            $muster[3] = '/</';
            $muster[4] = '/>/';
            $ersetzen[0] = '';
            $ersetzen[1] = '';
            $ersetzen[2] = chr(32);
            $ersetzen[3] = '';
            $ersetzen[4] = '';
            $buffer = preg_replace($muster, $ersetzen, $buffer);
            $log[$z1] = $buffer;
            $z1++;
        }
    }
    fclose($handle);
    $len0 = count($log);
    for ($i0 = 0; $i0 < $len0; $i0++) {
        $len1 = count($scan_typ1);
        for ($i1 = 0; $i1 < $len1; $i1++) {
            if (preg_match('/(' . $scan_typ1[$i1] . ')/', strtolower($log[$i0])) && preg_match('/%/', $log[$i0])) {
                preg_match('/[0-9]{2}\\|[0-9]{2}\\|[0-9]{2}/', $log[$i0], $scan_datum, PREG_OFFSET_CAPTURE);
                $a_typ = $scan_typ2[$i1];
                $scan_start = $i0 + 1;
                // Zeilen angabe(Immer eins mehr als aktuells Array)
                for ($i2 = 1; $i2 <= $scan_timeout; $i2++) {
                    $zeile = $log[$i0 + $i2];
                    if (!isset($log[$i0 + $i2])) {
                        break 1;
                    }
                    $split = preg_split('/' . chr(32) . '/', $log[$i0 + $i2]);
                    $len3 = count($split);
                    for ($i3 = 1; $i3 <= $len3; $i3++) {
                        $split[$i3] = preg_replace('/[^0-9:]/', '', $split[$i3]);
                        if (koord_check($split[$i3]) || stristr($zeile, "gn-scr1pt by wurst - #wursts.scr1pt1ng-ecke")) {
                            $scan_ende = $scan_start + $i2;
                            $last = $last + $scan_ende - 1;
                            break 4;
                        }
                    }
                }
                if (!isset($scan_ende) && $i2 == 6) {
                    unset($scan_start);
                }
            }
        }
    }
    if (!isset($scan_ende)) {
        $last--;
        if (!isset($scan_start)) {
            $last = count($log) + $last - 1;
        }
    }
    $query[0] = 'DELETE FROM gn4irc_scans WHERE chan="' . $chan . '"';
    $query[1] = 'INSERT INTO gn4irc_scans (tag, zeile, chan) VALUES ("' . date("d") . '", "' . $last . '", "' . $chan . '")';
    mysql_multi_query($query);
    if (isset($scan_ende)) {
        // mindestens ein scan gefunden
        for ($i0 = $scan_start; $i0 <= $scan_ende; $i0++) {
            $log[$i0 - 1] = trim($log[$i0 - 1]);
            $scan .= $log[$i0 - 1] . chr(13) . chr(10);
        }
        //eval('irc_'.$a_typ.'_scan('.$scan.');');
        $s_datum = preg_replace('/\\|/', ':', $scan_datum[0][0]);
        $s_datum .= " " . date("d.m.Y");
        $s_datum = substr($s_datum, 0, 5) . substr($s_datum, 8);
        if ($a_typ == "sek") {
            irc_sek_scan($scan, $s_datum, 1);
        } elseif ($a_typ == "unit") {
            irc_unit_scan($scan, $s_datum, 1);
        } elseif ($a_typ == "g") {
            irc_g_scan($scan, $s_datum, 1);
        } elseif ($a_typ == "mili") {
            irc_mili_scan($scan, $s_datum, 1);
        }
        unset($scan_start);
        unset($scan_ende);
        irc_scan_log_auslesen($pfad, $datei, $datum);
    }
}
예제 #4
0
 function add_nick_to_db($gala, $planet, $name)
 {
     if ($this->debug == 1) {
         print_r($scan);
         print_r($sek);
     } else {
         $query[0] = 'DELETE FROM gn4gnuser WHERE gala="' . $gala . '" AND planet="' . $planet . '"';
         $query[1] = 'INSERT INTO gn4gnuser (gala, planet, name, erfasst) ' . 'VALUES ("' . $gala . '", "' . $planet . '", "' . $name . '", "' . time() . '")';
         mysql_multi_query($query);
     }
 }
예제 #5
0
function a_koord()
{
    global $a, $v, $me, $ke, $Benutzer;
    if (preg_match('/^[0-9]{1,4}$/', $_POST['a_gala']) && preg_match('/^[0-9]{1,2}$/', $_POST['a_planet'])) {
        $mysql_senden[0] = 'SELECT * FROM gn4scans WHERE rg="' . $_POST['a_gala'] . '" AND rp="' . $_POST['a_planet'] . '" AND type="0" LIMIT 1;';
        $mysql_senden[1] = 'SELECT * FROM gn4scans WHERE rg="' . $_POST['a_gala'] . '" AND rp="' . $_POST['a_planet'] . '" AND type="1" LIMIT 1;';
        $mysql_senden[2] = 'SELECT * FROM gn4scans WHERE rg="' . $_POST['a_gala'] . '" AND rp="' . $_POST['a_planet'] . '" AND type="3" LIMIT 3;';
        $mysql_senden[3] = 'SELECT * FROM gn4scans WHERE rg="' . $Benutzer['galaxie'] . '" AND rp="' . $Benutzer['planet'] . '" AND type="1" LIMIT 3;';
        $daten = mysql_multi_query($mysql_senden, 1);
        if ($daten[0]['id'] != '') {
            $me = $daten[0]['me'];
            $ke = $daten[0]['ke'];
        }
        if ($daten[1]['id'] != '') {
            $v[0] = $daten[1]['sfj'];
            $v[1] = $daten[1]['sfb'];
            $v[2] = $daten[1]['sff'];
            $v[3] = $daten[1]['sfz'];
            $v[4] = $daten[1]['sfkr'];
            $v[5] = $daten[1]['sfsa'];
            $v[6] = $daten[1]['sft'];
            $v[7] = $daten[1]['sfka'];
            $v[8] = $daten[1]['sfsu'];
        }
        if ($daten[2]['id'] != '') {
            $v[9] = $daten[2]['glo'];
            $v[10] = $daten[2]['glr'];
            $v[11] = $daten[2]['gmr'];
            $v[12] = $daten[2]['gsr'];
            $v[13] = $daten[2]['ga'];
        }
        if (isset($_POST['e_flotte']) && $daten[3]['id'] != '') {
            $a[0] = $daten[3]['sfj'];
            $a[1] = $daten[3]['sfb'];
            $a[2] = $daten[3]['sff'];
            $a[3] = $daten[3]['sfz'];
            $a[4] = $daten[3]['sfkr'];
            $a[5] = $daten[3]['sfsa'];
            $a[6] = $daten[3]['sft'];
            $a[7] = $daten[3]['sfka'];
            $a[8] = $daten[3]['sfsu'];
        }
    }
}
예제 #6
0
<?php

$bogus = 42;
var_dump(mysql_next_result($bogus));
var_dump(mysql_fetch_result($bogus));
var_dump(mysql_more_results($bogus));
var_dump(mysql_multi_query('SELECT 1;', $bogus));