Signatur
Beschreibung
cubrid_num_cols() ermittelt die Anzahl der Spalten, die ein SELECT-Ergebnis enthält. Die Funktion wird typischerweise eingesetzt, um dynamisch über alle Spalten eines Ergebnisses zu iterieren, ohne deren Namen im Voraus zu kennen – etwa beim generischen Exportieren von Tabellendaten.
Die Funktion erwartet eine gültige Ergebnis-Ressource, wie sie von cubrid_execute() oder cubrid_query() zurückgegeben wird. Sie gibt eine nicht-negative ganze Zahl zurück, die der Spaltenanzahl entspricht, oder false im Fehlerfall.
Zu beachten ist, dass cubrid_num_cols() ausschließlich für SELECT-Abfragen sinnvoll ist. Bei DML-Anweisungen wie INSERT, UPDATE oder DELETE liefert die Funktion 0, da diese kein Spaltenergebnis erzeugen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Eine gültige CUBRID-Ergebnis-Ressource, die von cubrid_execute() oder einer vergleichbaren Abfragefunktion zurückgegeben wurde. |
Rückgabewert
int zurück. Bei einem Fehler wird false zurückgegeben.Beispiele
Spaltenanzahl eines SELECT-Ergebnisses ausgeben
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . cubrid_error());
}
$result = cubrid_execute($conn, 'SELECT athlete_code, name, gender FROM athlete LIMIT 5');
if ($result) {
$numCols = cubrid_num_cols($result);
echo 'Anzahl der Spalten: ' . $numCols . PHP_EOL;
cubrid_close_request($result);
}
cubrid_disconnect($conn);
Dynamisches Ausgeben aller Spaltennamen und Werte
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . cubrid_error());
}
$result = cubrid_execute($conn, 'SELECT * FROM athlete LIMIT 2');
if ($result) {
$numCols = cubrid_num_cols($result);
echo 'Spaltenanzahl: ' . $numCols . PHP_EOL;
// Spaltennamen ausgeben
for ($i = 0; $i < $numCols; $i++) {
echo cubrid_field_name($result, $i) . "\t";
}
echo PHP_EOL;
// Zeilen ausgeben
while ($row = cubrid_fetch_row($result)) {
echo implode("\t", $row) . PHP_EOL;
}
cubrid_close_request($result);
}
cubrid_disconnect($conn);
// Wichtig · Fallstricke
Nur für SELECT-Abfragen: Bei DML-Anweisungen (INSERT, UPDATE, DELETE) gibt die Funktion 0 zurück, da kein Spaltenresultat erzeugt wird. Verwenden Sie in diesem Fall cubrid_affected_rows(), um die Anzahl der betroffenen Zeilen zu ermitteln.
Stellen Sie sicher, dass die übergebene Ressource gültig und noch nicht geschlossen wurde, da sonst false zurückgegeben wird und ein Fehler entsteht.