unsigned int mysql_field_count(MYSQL
*mysql)
Beschreibung
Liefert die Anzahl der Spalten für die jüngste Anfrage auf dieser Verbindung.
Normalerweise benutzen Sie diese Funktion, wenn
mysql_store_result()
den Wert
NULL
zurückgegeben hat (und Sie deshalb
keinen Zeiger auf die Ergebnismenge haben). In diesem Fall
können Sie mit mysql_field_count()
feststellen, ob mysql_store_result()
ein
nichtleeres Ergebnis hätte produzieren müssen. So kann das
Clientprogramm die richtigen Maßnahmen ergreifen, ohne zu
wissen, ob die Anfrage eine SELECT
- (oder
SELECT
-ähnliche) Anweisung war. Wie dies
funktioniert, zeigt das folgende Beispiel.
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 können verarbeitet werden { result = mysql_store_result(&mysql); if (result) // Es sind Zeilen vorhanden { num_fields = mysql_num_fields(result); // Hole Zeilen ab und rufe dann mysql_free_result(result) auf } else // mysql_store_result() gab nichts zurück. Hätte es sollen? { if(mysql_field_count(&mysql) == 0) { // Anfrage liefert keine Daten // (Es war kein SELECT) num_rows = mysql_affected_rows(&mysql); } else // mysql_store_result() hätte Daten zurückgeben müssen { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); } } }
Eine Alternative wäre es, den Aufruf von
mysql_field_count(&mysql)
durch
mysql_errno(&mysql)
zu ersetzen. In
diesem Fall schauen Sie direkt in
mysql_store_result()
nach einem Fehler,
anstatt aus dem Wert von
mysql_field_count()
zu erschließen, ob die
Anweisung ein SELECT
war.
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.