La figure 3 contient un fragment de code qui illustre l'extraction et le traitement d'un jeu de résultats. Le code préparatoire, non montré ici, est semblable au code de la figure 2. Cependant, dans ce cas, SQL renvoie à un jeu de résultats dans la variable $sqlResult.
Associer les jeux de résultats aux matrices
Votre prochaine tâche consiste à extraire l'information de colonne (champ). Là encore, PHP simplifie les choses. Quand PHP extrait un jeu de résultats (de DB2 for i ou d'une autre base de données), vous pouvez utiliser la fonction db2_fetch_assoc (qui fait partie de l'extension DB2) pour associer chaque ligne à une matrice d'éléments nommés, appelée matrice associative en PHP ($row dans cet exemple). Vous verrez souvent $row utilisé dans l'exemple de code PHP, mais le nom de variable n'a pas de signification propre.
Les index vers la matrice associative sont les noms de colonne du jeu de résultats, qui correspondent presque toujours aux noms de champs dans les données DB2 for i sousjacentes (des exceptions sont possibles si vous attribuez un nom de corrélation dans votre SQL, par exemple). Ainsi, vous pouvez accéder à un champ individuel en utilisant le nom de champ DB2 for i comme un index vers la matrice du jeu de résultats ($row dans ce cas). Bien que l'idée d'un index de matrice nommée plutôt que numérique puisse sembler étrange à première vue, vous apprécierez rapidement sa polyvalence. En fait, c'est un peu comme travailleravec une structure de données RPG. Comme PHP a pris soin d'associer les noms de champs de DB2 for i aux clés de matrice, vous pouvez facilement traiter chaque ligne de ce jeu de résultats au moyen d’une boucle while. À ce stade, vous pouvez manipuler les éléments de matrice directement ou en copier certains pour en faire des variables PHP individuelles, comme dans la figure 3. L'usage futur des données déterminera le choix de l'approche. Quoi que vous fassiez avec les données, PHP facilite le traitement des jeux de résultats.
Figure 3
$sqlSelection = “Select * from $FileName where CusState = ‘$selectState’”;
$sqlResult = db2_exec($SystemiConnection, $sqlSelection);
if ($sqlResult) {
while ($row = db2_fetch_assoc($sqlResult)) {
$customerLastName = $row[‘CUSLNAME’];
$customerFirstName = $row[‘CUSFNAME’];
}
}
Téléchargez cette ressource
Sécuriser votre système d’impression
Longtemps sous-estimée, la sécurisation d’un système d’impression d’entreprise doit être pleinement prise en compte afin de limiter le risque de fuite d’informations sensibles. Voici les 3 principales précautions à prendre.