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:
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 columnatipo
- el tipo de columnamax_length
- longitud máxima de la columnanullable
- booleanotrue
si la columna admite valores NULL, en caso contrario booleanofalse
default
- el valor predeterminadoprimary_key
- entero1
si la columna es una clave primaria (todo entero1
, incluso si hay varias claves primarias), en caso contrario, entero0
(este campo está actualmente sólo disponible paraMySQLi
ySQLite3
)
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
.