Metadatos de la base de datos

Metadatos de tabla

Estas funciones le permiten recuperar información de la tabla.

Enumere las tablas en su base de datos

$db->listaTablas()

Devuelve una matriz que contiene los nombres de todas las tablas de la base de datos. al que estás conectado actualmente. Ejemplo:

<?php

$db = db_connect();

$tables = $db->listTables();

foreach ($tables as $table) {
    echo $table;
}

Nota

Some drivers have additional system tables that are excluded from this return.

Determinar si existe una tabla

$db->tableExists()

A veces es útil saber si una tabla en particular existe antes realizando una operación sobre él. Devuelve un valor booleano verdadero/falso. Ejemplo de uso:

<?php

$db = db_connect();

if ($db->tableExists('table_name')) {
    // some code...
}

Nota

Replace table_name with the name of the table you are looking for.

Metadatos de campo

Enumerar los campos en una tabla

$db->getFieldNames()

Devuelve una matriz que contiene los nombres de los campos. Esta consulta se puede llamar dos caminos:

  1. Puede proporcionar el nombre de la tabla y llamarla desde $db->object:

    <?php
    
    $db = db_connect();
    
    $fields = $db->getFieldNames('table_name');
    
    foreach ($fields as $field) {
        echo $field;
    }
    

2. Puede recopilar los nombres de los campos asociados con cualquier consulta que ejecute llamando a la función desde el objeto de resultado de su consulta:

<?php

$db = db_connect();

$query = $db->query('SELECT * FROM some_table');

foreach ($query->getFieldNames() as $field) {
    echo $field;
}

Determinar si un campo está presente en una tabla

$db->fieldExists()

A veces es útil saber si un campo en particular existe antes realizando una acción. Devuelve un valor booleano verdadero/falso. Ejemplo de uso:

<?php

$db = db_connect();

if ($db->fieldExists('field_name', 'table_name')) {
    // some code...
}

Nota

Replace field_name with the name of the column you are looking para y reemplace table_name con el nombre de la tabla que está Buscando.

Recuperar metadatos de campo

$db->getFieldData()

Devuelve una matriz de objetos que contienen información de campo.

A veces es útil recopilar los nombres de los campos u otros metadatos, como el tipo de columna, longitud máxima, etc.

Nota

Not all databases provide meta-data.

Ejemplo de uso:

<?php

$db = db_connect();

$fields = $db->getFieldData('table_name');

foreach ($fields as $field) {
    echo $field->name;
    echo $field->type;
    echo $field->max_length;
    echo $field->primary_key;
}

Los siguientes datos están disponibles en esta función si son compatibles con su base de datos:

  • nombre - nombre de la columna

  • tipo - el tipo de columna

  • max_length - longitud máxima de la columna

  • nullable - booleano true si la columna admite valores NULL, en caso contrario booleano false

  • default - el valor predeterminado

  • primary_key - entero 1 si la columna es una clave primaria (todo entero 1, incluso si hay varias claves primarias), en caso contrario, entero 0 (este campo está actualmente sólo disponible para MySQLi y SQLite3)

Nota

Since v7.(d+).(d+), SQLSRV supported nullable.

$consulta->getFieldData()

Si ya ha ejecutado una consulta, puede utilizar el objeto de resultado en lugar de proporcionando el nombre de la tabla:

<?php

$db = db_connect();

$query  = $db->query('YOUR QUERY');
$fields = $query->getFieldData();

Nota

The data returned is different from the data from $db->getFieldData(). Si no puede obtener los datos que necesita, utilice $db->getFieldData().

Enumere los índices en una tabla

$db->getIndexData()

Devuelve una matriz de objetos que contienen información de índice.

Ejemplo de uso:

<?php

$db = db_connect();

$keys = $db->getIndexData('table_name');

foreach ($keys as $key) {
    echo $key->name;
    echo $key->type;
    echo $key->fields; // array of field names
}

Los tipos de claves pueden ser exclusivos de la base de datos que esté utilizando. Por ejemplo, MySQL devolverá uno de los siguientes: primario, de texto completo, espacial, de índice o único. para cada clave asociada con una tabla.

SQLite3 devuelve un pseudoíndice llamado PRIMARY. Pero es un índice especial y no puede usarlo en sus comandos SQL.

$db->getForeignKeyData()

Devuelve una matriz de objetos que contienen información de clave externa.

Ejemplo de uso:

<?php

$db = db_connect();

$keys = $db->getForeignKeyData('table_name');

foreach ($keys as $key => $object) {
    echo $key === $object->constraint_name;
    echo $object->constraint_name;
    echo $object->table_name;
    echo $object->column_name[0]; // array
    echo $object->foreign_table_name;
    echo $object->foreign_column_name[0]; // array
    echo $object->on_delete;
    echo $object->on_update;
    echo $object->match;
}

Las claves externas utilizan la convención de nomenclatura tableprefix_table_column1_column2_foreign. Oracle usa un sufijo ligeramente diferente de _fk.