Signatur
Beschreibung
cubrid_num_fields() ermittelt, wie viele Spalten ein CUBRID-Abfrageergebnis enthält. Die Funktion ist besonders nützlich, wenn das genaue Schema einer Ergebnismenge nicht im Voraus bekannt ist – etwa bei dynamisch aufgebauten SELECT-Abfragen oder beim allgemeinen Verarbeiten von Resultsets.
Der Rückgabewert entspricht der Anzahl der projizierten Felder in der jeweiligen Abfrage. Bei einer Abfrage SELECT a, b, c FROM t liefert die Funktion den Wert 3. Zusammen mit cubrid_fetch_array() oder cubrid_fetch_row() lässt sich so ein vollständig tabellarisches Ausgabe-Schema aufbauen.
Die Funktion funktioniert ausschließlich mit einem gültigen Ergebnis-Handle, das von cubrid_execute() oder cubrid_query() zurückgegeben wurde. Bei nicht-tabellarischen Abfragen (z. B. INSERT, UPDATE) gibt sie 0 zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Ein gültiges CUBRID-Ergebnis-Handle, das von Funktionen wie cubrid_execute() oder cubrid_query() zurückgegeben wurde. |
Rückgabewert
0). Gibt -1 zurück, wenn ein Fehler aufgetreten ist, z. B. bei einem ungültigen Ergebnis-Handle.Beispiele
Spaltenanzahl einer SELECT-Abfrage ermitteln
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT id, name, email FROM members', $conn);
if ($result) {
$numFields = cubrid_num_fields($result);
echo 'Anzahl der Spalten: ' . $numFields . PHP_EOL; // 3
cubrid_close_request($result);
}
cubrid_disconnect($conn);
?>
Dynamische Tabellenausgabe mit cubrid_num_fields
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT * FROM orders', $conn);
if ($result) {
$numFields = cubrid_num_fields($result);
// Spaltenüberschriften ausgeben
echo '<table border="1"><tr>';
for ($i = 0; $i < $numFields; $i++) {
echo '<th>' . htmlspecialchars(cubrid_field_name($result, $i)) . '</th>';
}
echo '</tr>';
// Zeilen ausgeben
while ($row = cubrid_fetch_row($result)) {
echo '<tr>';
foreach ($row as $cell) {
echo '<td>' . htmlspecialchars((string)$cell) . '</td>';
}
echo '</tr>';
}
echo '</table>';
cubrid_close_request($result);
}
cubrid_disconnect($conn);
?>
// Wichtig · Fallstricke
Hinweis: Bei Abfragen, die keine Ergebnismenge liefern (z. B. INSERT, UPDATE, DELETE), gibt cubrid_num_fields() den Wert 0 zurück, nicht false. Prüfen Sie deshalb immer auch, ob das Ergebnis-Handle überhaupt gültig ist, bevor Sie diese Funktion aufrufen.
Die Funktion ist das CUBRID-Äquivalent zu mysqli_num_fields() oder PDOStatement::columnCount(). Sie steht nur zur Verfügung, wenn die CUBRID-Erweiterung (php_cubrid) installiert und aktiviert ist.