DB_common::setOption() (Previous) (Next) DB_result

View this page in Last updated: Sun, 20 Jul 2008
English | Dutch | French | German | Hungarian | Japanese | Polish | Russian | Spanish | Plain HTML

DB_common::tableInfo()

DB_common::tableInfo() -- Récupère les informations sur les colonnes d'une table ou d'un résultat de requête

Description

Récupère les informations sur les colonnes d'une table ou d'un résultat de requête.

Paramètres

mixed $result

Objet DB_result depuis une requête ou une chaîne contenant le nom d'une table.

Si le nom de la table nécessite d'être délimité (i.e. : le nom est un mot réservé ou contient un espace), utilisez la méthode quoteIdentifier() sur le nom de la table lorsque vous le passez.

Ce paramètre peut aussi être un identifiant de ressource de résultats mais faire cela est devenu obsolète.

entier $mode

une des constantes de modes d'informations de table.

Valeur retournée

array - un tableau associatif d'informations sur la table ou un objet DB_Error en cas d'échec.

Le contenu du tableau dépend du paramètre $mode.

Les noms des tables et des colonnes doivent être en minuscule si le mode de portabilité DB_PORTABILITY_LOWERCASE est actif.

L'élément flags contient une liste séparée par un espace d'informations additionnelles sur la colonne. Si le DBMS est capable de reporter la valeur par défaut de la colonne, la valeur est passée via la fonction rawurlencode() pour éviter les problèmes causés par d'éventuel espace dans la valeur.

La plupart des DBMS fournit uniquement les éléments table et flags si $result est un nom de table. Uniquement fbsql et mysql fournissent la totalité des informations depuis les requêtes.

L'élément type contient le type retourné par le DBMS. Il varie suivant les DBMS.

Modes tableInfo

Cette section décrit le format du tableau retourné et comment il varie dépendamment du $mode utilisé lors de l'appel de la fonction.

Le résultat simple ci-dessous est basé sur cette requête :

SELECT tblFoo.fldID, tblFoo.fldPhone, tblBar.fldId
  FROM tblFoo
  JOIN tblBar ON tblFoo.fldId = tblBar.fldId;

NULL ou 0

[0] => Array (
  [table] => tblFoo
  [name] => fldId
  [type] => int
  [len] => 11
  [flags] => primary_key not_null
)
[1] => Array (
  [table] => tblFoo
  [name] => fldPhone
  [type] => string
  [len] => 20
  [flags] =>
)
[2] => Array (
  [table] => tblBar
  [name] => fldId
  [type] => int
  [len] => 11
  [flags] => primary_key not_null
)

DB_TABLEINFO_ORDER

En plus des informations trouvées dans la sortie par défaut, une note sur le nombre de colonnes est fourni par l'élément num_fields tandis que l'élément order fournit un tableau dont les noms des colonnes sont les clés et leurs numéros d'index (correspondant aux clés dans le résultat par défaut) sont les valeurs.

Si un jeu de résultats a des noms de champs identiques, le dernier sera utilisé.

[num_fields] => 3
[order] => Array (
  [fldId] => 2
  [fldTrans] => 1
)

DB_TABLEINFO_ORDERTABLE

Similaire à DB_TABLEINFO_ORDER mais ajoute plus de dimensions au tableau dont les noms des tables sont les clés et les noms des champs, les sous-clés. Ceci est utile pour les requêtes qui utilisent les jointures qui ont des noms de champs identiques.

[num_fields] => 3
[ordertable] => Array (
  [tblFoo] => Array (
      [fldId] => 0
      [fldPhone] => 1
  )
  [tblBar] => Array (
      [fldId] => 2
  )
)

DB_TABLEINFO_FULL

Contient les informations de DB_TABLEINFO_ORDER et de DB_TABLEINFO_ORDERTABLE.

Les constantes de modes tableInfo peuvent être cumulées en utilisant le signe pipe (|).

Note

Cette fonction ne peut pas être appelée de façon statique.

tableInfo() n'est pas portable car tous les drivers ne supportent pas cette méthode. La plupart des DBMS est incapable de déterminer les noms des tables depuis les résultats des requêtes et les données méta retournées par chaque système de base de données varient énormément.

DB_common::setOption() (Previous) (Next) DB_result

Download Documentation Last updated: Sun, 20 Jul 2008
Do you think that something on this page is wrong? Please file a bug report or add a note.
User Notes:
There are no user contributed notes for this page.