kostenloser Webspace werbefrei: lima-city


Zeit eines MySQL-Query messen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Moin moin,

    ich würde gerne die Zeit messen, die ein Query braucht, um ausgeführt zu werden.
    Im Grunde ist das ja ganz einfach durch ein

    <?php
    $starttime = microtime();
    
    mysql_query("BLABLA");
    
    $gesamttime = microtime() - $starttime;
    ?>


    Da ich viele Querys mache, die ich alle überwachen will, hätte ich dafür gerne eine Funktion wie diese;

    <?php
    
    function observe_query_time($query_string) {
      $starttime = microtime();
      $qry = mysql_query("BLABLA");
      $gesamttime = microtime() - $starttime;
      return $qry;
    }
    ?>


    Allerdings habe ich hierbei das Problem, dass ich jetzt nichtmehr auf mySQL- Fehler reagieren kann.
    denn auf jede fehlerhafte Abfrage reagiere ich anders.

    oder kann ich ein
    <?php
    observe_query_time($query_string) or die("BLABLAH");
    ?>

    machen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. klar warum solltest du das nicht machen können ^^
    zunot, probieren geht über studieren ;)
  4. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Okay,
    ich war der Meinung, dass das "or ..." immer direkt hinter das mysql_query muss.
    War dumm von mir, sorry

    EDIT =>
    Ein Problem habe ich dochnoch:
    Ich will die Zeiten auch in einer MySQL-Tabelle speichern, aber dazu muss ich einen weiteren Query machen.
    Schlägt dieser Query fehl, werden aber die Variablen mysql_errno und mysql_error überschrieben...
    Wie löse ich das denn?

    Beitrag zuletzt geändert: 8.2.2011 17:39:11 von speedtouch92
  5. justarustyspoon

    justarustyspoon hat kostenlosen Webspace.

    speedtouch92 schrieb:
    Schlägt dieser Query fehl, werden aber die Variablen mysql_errno und mysql_error überschrieben...
    Wie löse ich das denn?


    Hiho.
    Nicht ganz. Die beziehen sich immer auf die letzte Abfrage und werden daher auch überschrieben, wenn kein Fehler auftrat. Zur Not könntest du die vorherigen Zustand zwischen speichern. Mir erschließt sich aber noch nicht so ganz wofür du das ganze brauchst?
  6. Probiers so:

    <?php
    function query($query_string, $errmsg="Fehler", $debug=false) {
    	$starttime = microtime();
      
    	try {
    		if(mysql_query($query_string) === false)
    			if($debug == true)
    				throw new Exception(mysql_error());
    			else
    				throw new Exception($errmsg);
    	}
    	catch (Exception $e) {
    		return $e->getMessage();
    	}
    
    	return microtime() - $starttime;
    }
    
    echo query("xxx", "Fehler 1");
    echo query("yyy", "Fehler 2");
    ?>


    Beitrag zuletzt geändert: 8.2.2011 18:17:22 von fabo
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!