2010-12-13 3 views
2

Selon la documentation ZF lors de l'utilisation de fetchAssoc(), la première colonne du jeu de résultats doit contenir des valeurs uniques, sinon les lignes contenant des valeurs dupliquées dans la première colonne écraseront les données précédentes.Zend_Db_Adapter_Mysqli :: fetchAssoc() Je ne veux pas de clés primaires comme index de tableau!

Je ne veux pas cela, je veux que mon tableau soit indexé 0,1,2,3 ... Je n'ai pas besoin que les lignes soient uniques parce que je ne les modifierai pas et je ne les sauvegarderai pas Retour à la DB.

Répondre

0

De http://framework.zend.com/manual/1.11/en/zend.db.adapter.html The fetchAssoc() method returns data in an array of associative arrays, regardless of what value you have set for the fetch mode, **using the first column as the array index**.

Donc, si vous mettez
$result = $db->fetchAssoc(
'SELECT some_column, other_column FROM table'
);

vous aurez comme résultat un tableau comme celui-ci

$result['some_column']['other_column']

+0

Le résultat de c'est '$ result [some_column_value] = [ 'some_column' => some_column_value, 'other_column' => other_column_value];', comme je l'ai récemment découvert . – pavlindrom

2

Selon la documentation ZF fetchAll() (lors de l'utilisation du mode de récupération par défaut, qui est en fait FETCH_ASSOC) est équivalent t o fetchAssoc(). MAIS CE N'EST PAS. J'ai utilisé la fonction print_r() pour révéler la vérité.

print_r($db->fetchAll('select col1, col2 from table')); 

impressions

Array 
(
    [0] => Array 
     (
      [col1] => 1 
      [col2] => 2 
     ) 
) 

Alors:

  1. fetchAll() est ce que je voulais.
  2. Il y a un bug dans la documentation ZF
+2

AFAICT Il n'y a pas de "bug" dans la documentation, vous ne l'interprétez pas correctement (donc peut-être qu'ils pourraient le reformuler pour rendre les choses absolument claires). fetchAll() avec FETCH_ASSOC ne fait rien avec les clés du tableau principal (donc toutes les lignes seront retournées), alors que fetchAssoc() utilise la valeur de la première colonne de la requête comme index pour le tableau principal. – wimvds

Questions connexes