MYSQL_RES *mysql_use_result(MYSQL *mysql)
        
Beschreibung
          Sie müssen mysql_store_result() oder
          mysql_use_result() für jede Anfrage
          aufrufen, die erfolgreich Daten abruft
          (SELECT, SHOW,
          DESCRIBE, EXPLAIN).
        
          mysql_use_result() initiiert den Abruf
          einer Ergebnismenge, lädt sie jedoch im Gegensatz zu
          mysql_store_result() nicht komplett auf den
          Client herunter. Stattdessen wird jede Zeile einzeln mit einem
          Aufruf von mysql_fetch_row() abgefragt. So
          wird ein Anfrageergebnis direkt vom Server gelesen, ohne es in
          einer temporären Tabelle oder in einem lokalen Puffer
          zwischenzuspeichern. Das geht schneller und belegt weniger
          Speicher als mysql_store_result(). Der
          Client weist nur für die aktuelle Zeile Speicher zu und
          reserviert einen Kommunikationspuffer, der bis zur Größe von
          max_allowed_packet Bytes anwachsen kann.
        
          Demgegenüber sollten Sie
          mysql_use_result() nicht verwenden, wenn
          Sie jede Zeile auf der Clientseite aufwändig vearbeiten oder
          die Ausgabe an einen Bildschirm senden, in den der Benutzer
          ^S (Stop Scroll) eintippen kann. Dies
          würde den Server sperren und verhindern, dass andere Threads
          Tabellen aktualisieren können, aus denen die Daten abgerufen
          werden.
        
          Wenn Sie mit mysql_use_result() arbeiten,
          müssen Sie mysql_fetch_row() so oft
          ausführen, bis ein NULL-Wert
          zurückgeliefert wird. Sonst werden die nicht abgerufenen
          Zeilen zu einem Teil der Ergebnismenge der nächsten Anfrage.
          Wenn Sie dies vergessen, meldet die C-API den Fehler
          Commands out of sync; you can't run this command
          now!
        
          Die Funktionen mysql_data_seek(),
          mysql_row_seek(),
          mysql_row_tell(),
          mysql_num_rows() oder
          mysql_affected_rows() können nicht mit
          einer Ergebnisrückgabe von
          mysql_use_result() benutzt werden. Ebenso
          wenig können Sie andere Anfragen absetzen, bevor die Funktion
          mysql_use_result() ihre Arbeit beendet hat.
          (Immerhin liefert mysql_num_rows() ein
          akkurates Ergebnis, wenn Sie alle Zeilen abgeholt haben.)
        
          Sie müssen mysql_free_result() aufrufen,
          wenn Sie mit der Ergebnismenge fertig sind.
        
          Bei Verwendung des Embedded Servers
          libmysqld geht der Vorteil des geringen
          Speicherbedarfs verloren, da die Speicherbelegung inkrementell
          mit jeder abgeholten Zeile anwächst, bis Sie
          mysql_free_result() aufrufen.
        
Rückgabewerte
          Eine MYSQL_RES-Ergebnisstruktur.
          NULL, wenn ein Fehler auftrat.
        
Fehler
          mysql_use_result() setzt bei Erfolg
          mysql_error() und
          mysql_errno() zurück.
        
              CR_COMMANDS_OUT_OF_SYNC
            
Befehle wurden in der falschen Reihenfolge ausgeführt.
              CR_OUT_OF_MEMORY
            
Speicherüberlauf.
              CR_SERVER_GONE_ERROR
            
Der MySQL Server ist nicht mehr verfügbar.
              CR_SERVER_LOST
            
Die Serververbindung brach während der Anfrage ab.
              CR_UNKNOWN_ERROR
            
Ein unbekannter Fehler ist aufgetreten.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

