unsigned int mysql_num_fields(MYSQL_RES
*result)
Um stattdessen ein MYSQL*
-Argument zu
übergeben, sagen Sie unsigned int
mysql_field_count(MYSQL *mysql)
.
Beschreibung
Liefert die Anzahl der Spalten einer Ergebnismenge.
Beachten Sie, dass Sie die Anzahl der Spalten entweder aus
einem Zeiger auf eine Ergebnismenge oder aus einem
Verbindungs-Handle erfahren können. Den Verbindungs-Handle
verwenden Sie, wenn mysql_store_result()
oder mysql_use_result()
den Wert
NULL
zurückgegeben hat (sodass kein Zeiger
auf die Ergebnismenge zur Verfügung steht). In diesem Fall
können Sie mit mysql_field_count()
ermitteln, ob mysql_store_result()
eigentlich ein nichtleeres Ergebnis hätte liefern sollen. So
kann das Clientprogramm geeignete Maßnahmen ergreifen, ohne
zu wissen, ob die Anfrage eine SELECT
-
(oder SELECT
-ähnliche) Anweisung war. Das
Beispiel zeigt, wie man dies macht.
Rückgabewerte
Ein vorzeichenloser Integer, der die Anzahl der Spalten einer Ergebnismenge angibt.
Fehler
Keine.
Beispiel
MYSQL_RES *result; unsigned int num_fields; unsigned int num_rows; if (mysql_query(&mysql,query_string)) { // Fehler } else // Anfrage erfolgreich, Rückgabedaten werden verarbeitet { result = mysql_store_result(&mysql); if (result) // Es liegen Zeilen vor { num_fields = mysql_num_fields(result); // Zeilen abrufen und dann mysql_free_result(result) aufrufen } else // mysql_store_result() gab nichts zurück, hätte es sollen? { if (mysql_errno(&mysql)) { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); } else if (mysql_field_count(&mysql) == 0) { // Anfrage liefert keine Daten // (war kein SELECT) num_rows = mysql_affected_rows(&mysql); } } }
Wenn Sie wissen, dass Ihre Anfrage eine Ergebnismenge hätte
zurückgeben müssen, können Sie alternativ den Aufruf von
mysql_errno(&mysql)
durch eine Prüfung
ersetzen, die feststellt, ob
mysql_field_count(&mysql)
gleich 0 ist.
Das geschieht nur, wenn etwas schief gegangen ist.
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.