$bool = mysql_query(...) - $bool immer überprüfen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • $bool = mysql_query(...) - $bool immer überprüfen?

    Hallo!

    Hoffe euch geht es gut! Das Wetter ist ja prima!
    Hier mein Anliegen...

    Habe eine PHP-Datei mit diesem Aufbau (Schema):
    PHP-Code:
    require_once ([MYSQL-VERBINDUNG HERSTELLEN]);

    [
    HAUPTTEIL mit mehreren mysql_query() Anfragen]

    mysql_close(); 
    Meine Frage:
    Soll ich wirklich jede mysql_query() Anfrage überprüfen, also...

    PHP-Code:
    $bool mysql_query($sql$resID)
    if(
    $bool == true)
     { 
    /* Freude! */ 
    else 
    /* Mist! */ 
    Ich spekuliere, dass die Anfragen immer korrekt sind (einzufügende Variablen sind ordentlich geprüft). Aber was passiert, wenn die Verbindung abbricht o.ä.? Kommt sowas oft vor?
    Kann man Anfragen simulieren, bevor man sie durchführt?

    Vielen Dank für eure Antworten und Mithilfe!

    Bis dann,
    Marc
    Zuletzt geändert von marc_kessler; 06.05.2006, 17:18.

  • #2
    eigentlch sollte man das immer überprüfen. was ist zum beipiel, wenn du gleichzeitig etwas in zwei tabellen einfügst, das einen direkten zusammenhang hat? erste abfrage funzt net, zweite schon, also hat deine db eine inkonsistenz. ich habe mir mal durch einen flüchtigkeitsfehler die halbe db zerhauen.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Re: $bool = mysql_query(...) - $bool immer überprüfen?

      Ich verwende meist
      PHP-Code:
      mysql_query($sql$resID) or die( /* Mist! */ );
      /* Freude */ 

      Kommentar


      • #4
        hi! schonmal vielen dank für eure raschen nachrichten!


        Original geschrieben von Kropff
        was ist zum beipiel, wenn du gleichzeitig etwas in zwei tabellen einfügst, das einen direkten zusammenhang hat? erste abfrage funzt net, zweite schon, also hat deine db eine inkonsistenz.
        gäbe es eine möglichkeit, dann die vorherigen operationen rückgängig zu machen?

        Bsp.:
        PHP-Code:
        1. erste Anfrage zur DB funktioniert (es wird etwas gelöscht) -> Freude
        2. zweite Anfrage zur DB funktioniert 
        (neuer Datensatz) -> Freude
        3. dritte Anfrage zur DB funktioniert 
        (es wird etwas gelöscht) -> Freude
        4. vierte Anfrage zur DB funktioniert plötzlich nicht 
        -> Mist 
        Gibt es was vorgefertigtes um zu checken? ...

        PHP-Code:
        1. Prüfe ob erste Anfrage Erfolg haben könnte
        2. Prüfe ob zweite Anfrage Erfolg haben könnte
        3. Prüfe ob dritte Anfrage Erfolg haben könnte
        4. Prüfe ob vierte Anfrage Erfolg haben könnte

        Wenn 1.
        -4. == true Dann führe aus 1.-4. 

        Oder wie würdet ihr das lösen?

        Viele Grüße,
        Marc



        Original geschrieben von onemorenerd
        Ich verwende meist
        PHP-Code:
        mysql_query($sql$resID) or die( /* Mist! */ );
        /* Freude */ 
        Das ist schonmal ne gute Idee, da kurzer Syntax. Danke!

        Kommentar


        • #5
          Original geschrieben von Kropff
          erste abfrage funzt net, zweite schon, also hat deine db eine inkonsistenz.
          transaktionssicherung verwenden?

          transaktion starten, beide queries ausführen und bei nem fehler n rollback, ansonsten n commit
          MfG
          aim
          Lies mich jetzt!
          - OT-Tags-Liebhaber und BB-Code-Einrücker -

          Kommentar


          • #6
            Original geschrieben von aimbot
            transaktionssicherung verwenden?

            transaktion starten, beide queries ausführen und bei nem fehler n rollback, ansonsten n commit

            okay, klingt verdammt gut.

            die tabellen müssen dann im InnoDB Typ sein. Ergeben sich gegenüber MyIsam dann merkbare Nachteile?

            Kommentar


            • #7
              Mir sind keine Nachteile bekannt, zur Sicherheit kannst du ja mal in der Doku nachsehen. http://dev.mysql.com/doc

              Kommentar


              • #8
                naja durch die transaktionssicherung ist innodb etwas langsamer, aber es gibt auch fälle wo innodb dann wieder schneller ist (rowlevel-locking, etc)
                MfG
                aim
                Lies mich jetzt!
                - OT-Tags-Liebhaber und BB-Code-Einrücker -

                Kommentar


                • #9
                  Okay, vielen Dank!

                  Habe jetzt auf InnoDB umgestellt. Es klappt alles wunderbar. Für mich wird es durch InnoDB keine Nachteile geben.

                  Grüße,
                  Marc

                  Kommentar


                  • #10
                    Original geschrieben von marc_kessler
                    Habe jetzt auf InnoDB umgestellt.
                    bei falscher Konfiguration ist die Datenbank dadurch genauso performant wie ein Stück Stein Oo,
                    und bei extremer Belastung ist es einfach irgendwann nicht mehr möglich die InnoDB performant zu konfigurieren, dann hilft nur noch MyISAM *shrug*
                    sofern man also auf Transaktionen verzichten kann, sollte man bei MyISAM bleiben

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar

                    Lädt...
                    X