DB_common::getAssoc()

DB_common::getAssoc() – Récupère le résultat dans un tableau

Synopsis

array &getAssoc ( string $query , boolean $force_array = = false , mixed $params = array() , integer $fetchmode = = DB_FETCHMODE_DEFAULT , boolean $group = = false )

Description

Exécute la requête et met la totalité du résultat dans un tableau associatif et libère le résultat.

Si le résultat contient plus de deux colonnes, les valeurs seront un tableau des valeurs allant des colonnes 2 à n. Si le résultat ne contient que deux colonnes, la valeur retournée est un scalaire avec la valeur de la seconde colonne (sauf si vous forcez l'obtention d'un tableau avec la paramètre $force_array ).

Parameter

string $query

la requête SQL à préparer

boolean $force_array

utilisé seulement si la requête retourne exactement deux colonnes. Si TRUE, les valeurs du tableau retourné seront des tableaux à un élément au lieu de scalaires.

mixed $params

tableau, chaîne ou données numériques à ajouter à la requête préparée. Le nombre d'éléments passés doit correspondre à celui des marqueurs dans la requête préparée : un marqueur pour les scalaires ou un marqueur par élément du tableau pour un tableau.

Si ce paramètre est fourni, prepare()/ execute() sont utilisées.

integer $fetchmode

le mode de récupération à utiliser. Par défaut, c'est DB_FETCHMODE_DEFAULT, qui demande à la méthode d'utiliser le mode de récupération courant de DB. Le mode de récupération courant de DB peut être modifier en utilisant setFetchMode(). Les valeurs possibles sont :

  • DB_FETCHMODE_ORDERED

  • DB_FETCHMODE_ASSOC

  • DB_FETCHMODE_OBJECT

boolean $group

si TRUE, les valeurs du tableau retournées sont enveloppés dans un autre tableau. Si la même valeur de clef (dans la première colonne) se répète, les valeurs seront ajoutées à la fin de ce tableau, au lieu d'écraser les valeurs existantes.

Return value

array - tableau associatif avec les résultats de la requête ou un objet DB_Error en cas d'erreur.

Throws

Possible PEAR_Error values
Code erreur Message erreur Raison Solution
DB_ERROR_INVALID invalid La requête SQL à préparer n'est pas valide. Voyez la documentation de prepare(), si vous voulez utiliser une requête SQL avec des marqueurs.
DB_ERROR_MISMATCH mismatch Le nombre de paramètres ne correspond pas au nombre de marqueurs dans la requête préparée. Vérifiez le nombre de marqueurs dans la requête prepare() passée à $query . Il doit être égal au nombre d'entrées passées à $params .
DB_ERROR_NODBSELECTED no database selected Aucune base de données n'a été sélectionnée. Vérifiez le DSN dans connect().
DB_ERROR_TRUNCATED truncated Le résultat contient moins de deux colonnes. Vérifiez la requête SQL ou choisissez une autre fonction get*().
tout autre code erreur Erreur spécifique à la base de données. Vérifiez la section spécifique à la base de données dans le manuel PHP pour trouver la raison de cette erreur. Dans la plupart des cas, il s'agit d'une requête mal formée. Comme l'utilisation de LIMIT dans une requête envoyée à une base de données Oracle.

Note

This function can not be called statically.

Example

Tous les exemples utilisent les données suivantes :

INSERT INTO foo VALUES ('Juan', 5, '1991-01-11 21:31:41');
INSERT INTO foo VALUES ('Kyu', 10, '1992-02-12 22:32:42');
INSERT INTO foo VALUES ('Kyu', 15, '1993-03-13 23:33:43');

Le résultat a deux colonnes

Lorsque vous utilisez getAssoc() pour récupérer le résultat qui a deux colonnes et $force_array = FALSE (par défaut), changer $fetchmode n'aura aucun effet sur le format du tableau résultant.

Exemple avec getAssoc() dans son mode par défaut

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo');

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => 1991-01-11 21:31:41
    [Kyu] => 1993-03-13 23:33:43
)

Utilisation de getAssoc() avec $group = TRUE

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        
false, array(), DB_FETCHMODE_ORDEREDtrue);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [0] => 1992-02-12 22:32:42
            [1] => 1993-03-13 23:33:43
        )
)

Utilisation de getAssoc() avec $force_array = TRUE et $fetchmode = DB_FETCHMODE_ORDERED

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        
true, array(), DB_FETCHMODE_ORDERED);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [0] => 1993-03-13 23:33:43
        )
)

Utilisation de getAssoc() avec $force_array = TRUE et $fetchmode = DB_FETCHMODE_ASSOC

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        
true, array(), DB_FETCHMODE_ASSOC);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [df] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [df] => 1993-03-13 23:33:43
        )
)

Utilisation de getAssoc() avec $force_array = TRUE et $fetchmode = DB_FETCHMODE_OBJECT

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        
true, array(), DB_FETCHMODE_OBJECT);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => stdClass Object
        (
            [cf] => Juan
            [df] => 1991-01-11 21:31:41
        )
    [Kyu] => stdClass Object
        (
            [cf] => Kyu
            [df] => 1993-03-13 23:33:43
        )
)

Utilisation de getAssoc() avec $force_array = TRUE, $fetchmode = DB_FETCHMODE_ORDERED et $group = TRUE

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        
true, array(), DB_FETCHMODE_ORDEREDtrue);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => Array
                (
                    [0] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => Array
                (
                    [0] => 1992-02-12 22:32:42
                )
            [1] => Array
                (
                    [0] => 1993-03-13 23:33:43
                )
        )
)

Utilisation de getAssoc() avec $force_array = TRUE, $fetchmode = DB_FETCHMODE_ASSOC et $group = TRUE

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        
true, array(), DB_FETCHMODE_ASSOCtrue);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => Array
                (
                    [df] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => Array
                (
                    [df] => 1992-02-12 22:32:42
                )
            [1] => Array
                (
                    [df] => 1993-03-13 23:33:43
                )
        )
)

Utilisation de getAssoc() avec $force_array = TRUE, $fetchmode = DB_FETCHMODE_OBJECT et $group = TRUE

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo',
        
true, array(), DB_FETCHMODE_OBJECTtrue);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => stdClass Object
                (
                    [cf] => Juan
                    [df] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => stdClass Object
                (
                    [cf] => Kyu
                    [df] => 1992-02-12 22:32:42
                )
            [1] => stdClass Object
                (
                    [cf] => Kyu
                    [df] => 1993-03-13 23:33:43
                )
        )
)

Le résultat a plus de deux colonnes

Utilisation de getAssoc() avec $fetchmode = DB_FETCHMODE_ORDERED

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        
false, array(), DB_FETCHMODE_ORDERED);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => 5
            [1] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [0] => 15
            [1] => 1993-03-13 23:33:43
        )
)

Utilisation de getAssoc() avec $fetchmode = DB_FETCHMODE_ASSOC

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        
false, array(), DB_FETCHMODE_ASSOC);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [nf] => 5
            [df] => 1991-01-11 21:31:41
        )
    [Kyu] => Array
        (
            [nf] => 15
            [df] => 1993-03-13 23:33:43
        )
)

Utilisation de getAssoc() avec $fetchmode = DB_FETCHMODE_OBJECT

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        
false, array(), DB_FETCHMODE_OBJECT);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => stdClass Object
        (
            [cf] => Juan
            [nf] => 5
            [df] => 1991-01-11 21:31:41
        )
    [Kyu] => stdClass Object
        (
            [cf] => Kyu
            [nf] => 15
            [df] => 1993-03-13 23:33:43
        )
)

Utilisation de getAssoc() avec $fetchmode = DB_FETCHMODE_ORDERED et $group = TRUE

<?php
// Once you have a valid DB object named $db...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        
false, array(), DB_FETCHMODE_ORDEREDtrue);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => Array
                (
                    [0] => 5
                    [1] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => Array
                (
                    [0] => 10
                    [1] => 1992-02-12 22:32:42
                )
            [1] => Array
                (
                    [0] => 15
                    [1] => 1993-03-13 23:33:43
                )
        )
)

Utilisation de getAssoc() avec $fetchmode = DB_FETCHMODE_ASSOC et $group = TRUE

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        
false, array(), DB_FETCHMODE_ASSOCtrue);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => Array
                (
                    [nf] => 5
                    [df] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => Array
                (
                    [nf] => 10
                    [df] => 1992-02-12 22:32:42
                )
            [1] => Array
                (
                    [nf] => 15
                    [df] => 1993-03-13 23:33:43
                )
        )
)

Utilisation de getAssoc() avec $fetchmode = DB_FETCHMODE_OBJECT et $group = TRUE

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, nf, df FROM foo',
        
false, array(), DB_FETCHMODE_OBJECTtrue);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}

print_r($data);
?>

Affichera :


Array
(
    [Juan] => Array
        (
            [0] => stdClass Object
                (
                    [cf] => Juan
                    [nf] => 5
                    [df] => 1991-01-11 21:31:41
                )
        )
    [Kyu] => Array
        (
            [0] => stdClass Object
                (
                    [cf] => Kyu
                    [nf] => 10
                    [df] => 1992-02-12 22:32:42
                )
            [1] => stdClass Object
                (
                    [cf] => Kyu
                    [nf] => 15
                    [df] => 1993-03-13 23:33:43
                )
        )
)

Mode Prepare / Execute

Utilisation de getAssoc() avec un marqueur

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo WHERE nf = ?',
        
false5);

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}
?>

Utilisation de getAssoc() avec deux marqueurs

<?php
// On suppose que $db est un objet DB valide...
$data =& $db->getAssoc('SELECT cf, df FROM foo WHERE nf IN (?, ?)',
        
false, array(510));

if (
PEAR::isError($data)) {
    die(
$data->getMessage());
}
?>
Récupère toutes les lignes (Previous) Récupère une seule colonne (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.