odbc_columns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_columnsLists the column names in specified tables

Description

odbc_columns(
    resource $odbc,
    ?string $catalog = null,
    ?string $schema = null,
    ?string $table = null,
    ?string $column = null
): resource|false

Lists all columns in the requested range.

Parameters

odbc

The ODBC connection identifier, see odbc_connect() for details.

catalog

The catalog ('qualifier' in ODBC 2 parlance).

schema

The schema ('owner' in ODBC 2 parlance). This parameter accepts the following search patterns: % to match zero or more characters, and _ to match a single character.

table

The table name. This parameter accepts the following search patterns: % to match zero or more characters, and _ to match a single character.

column

The column name. This parameter accepts the following search patterns: % to match zero or more characters, and _ to match a single character.

Return Values

Returns an ODBC result identifier or false on failure.

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Drivers can report additional columns.

The result set is ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME and ORDINAL_POSITION.

Changelog

Version Description
8.0.0 schema, table and column are now nullable.

Examples

Example #1 List Columns of a Table

<?php
$conn
= odbc_connect($dsn, $user, $pass);
$columns = odbc_columns($conn, 'TutorialDB', 'dbo', 'test', '%');
while ((
$row = odbc_fetch_array($columns))) {
print_r($row);
break;
// further rows omitted for brevity
}
?>

The above example will output something similar to:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [DATA_TYPE] => 4
    [TYPE_NAME] => int
    [COLUMN_SIZE] => 10
    [BUFFER_LENGTH] => 4
    [DECIMAL_DIGITS] => 0
    [NUM_PREC_RADIX] => 10
    [NULLABLE] => 0
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => 4
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] =>
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => NO
)

See Also