Ankündigung

Einklappen
Keine Ankündigung bisher.

Verständnisfrage mysql_store_result / mysql_free_result

Einklappen

Neue Werbung 2019

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

  • Verständnisfrage mysql_store_result / mysql_free_result

    Hey,

    ich habe eine Verständnisfrage zu store und free_result.

    Gerade wenn ich überprüfen möchte ob eine Line existiert verwende ich häufig ähnlichen Code wie diesen (bsp. sprachungebunden):

    Code:
    mysql_query(...)
    mysql_store_result();
    if(mysql_num_rows())
    {
    // ...
    }
    else
    {
    //...
    }
    mysql_free_result();
    Meine Frage nun:

    Wirkt es sich general negativ aus wenn ich in den in den einzelnen Bedingungssätzen weitere Queries ausführe?

    Z.B.:

    Code:
    mysql_query(...)
    mysql_store_result();
    if(mysql_num_rows())
    {
       mysql_query("INSERT INTO `whatever` (`id`) VALUES ('1');");
    }
    else
    {
    //...
    }
    mysql_free_result();

    Oder: Wirkt es sich nur u.U. negativ aus, z.B. bei einem Query, das wiederum ein neues Result speichert:

    Code:
    mysql_query(...)
    mysql_store_result();
    if(mysql_num_rows())
    {
       mysql_query("SELECT * FROM `whatever`;");
       mysql_store_result();
       // ...
       mysql_free_result();
    }
    else
    {
    //...
    }
    mysql_free_result();
    Unteres Bsp. müsste mmN Probleme erzeugen, da vor dem nä. free ein weiteres store stattfindet. Ist das korrekt?

    Vielen Dank und Grüße!


  • #2
    Nein hast Du nicht. mysql_free_result erwartetet eine Ergbniskennung.
    bool mysql_free_result ( resource $Ergebnis-Kennung )
    mysql_store_result kenne ich nicht.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Sorry, bin hier etw. unerfahren und hab eben erst gelesen, dass es sich in meinen Fällen um Anwendungen von c++ plugins von MySQL C API handelt.

      MySQL :: MySQL 5.0 Reference Manual :: 20.8 MySQL C API

      store_result():

      MySQL :: MySQL 5.0 Reference Manual :: 20.8.3.69 mysql_store_result()

      Dann denke ich auch single-threaded (?), da (in meinen Fall) keine Parameter übergeben werden (vll. ein default aber der ändert sich ja nicht)...

      Kommentar


      • #4
        Was hast du mit den Aufrufen denn vor? Wenn deine Ergebnismengen nicht riesig sind, brauchst du free_result eh nicht aufrufen.
        "Mein Name ist Lohse, ich kaufe hier ein."

        Kommentar


        • #5
          Wenn ich free_result nicht zu jedem store_result aufrufe passiert es schnell, dass ein "Commands out of sync; you can't run this command now" auftritt. Ich verarbeite die results (bei den select queries) einfach und speichere sie in Variablen.

          Dennoch, die Frage bleibt wie oben bestehen... hat jmd ne Idee?

          Kommentar

          Lädt...
          X