À l'aide de selectall_hashref que je selectall_arrayref
Je suis en train de faire quelques exercices pour augmenter mes compétences en Perl et l'un d'eux consiste à relier à une base de données SQL, l'exécution d'une requête, et de retourner les résultats dans un tableau. C'est ce que j'ai à ce jour:
my $search = $_[0];
our $dbh = DBI->connect{"dbi:mysql:dbname=database", "root", "password")
or die $DBI::errstr;
my $sql = $dbh->selectall_arrayref("SELECT Player from Players_Sport where Sport like '$search'")
or die $DBI::errstr;
my @array = map { $_->[0] } @$sql;
$dbh->disconnect
or warn "Disconnection failed: $DBI::errstr\n";
return @array;
Ma prochaine étape est de modifier le code pour renvoyer les résultats d'un algorithme de hachage au lieu d'un tableau, mais je ne suis pas certain de la façon de procéder. Je m'attends à utiliser selectall_hashref
, mais tous les exemples en ligne j'ai trouvé une utilisation TOUT. Je veux retourner les résultats, puis créer le hash en étapes distinctes.
OriginalL'auteur user2361820 | 2013-05-13
Vous devez vous connecter pour publier un commentaire.
À l'aide de la
selectall_hashref
méthode combineprepare
,execute
etfetchall_arrayref
en un seul appel. Elle renvoie une référence à un tableau contenant une référence à un hachage pour chaque ligne de données récupérées. Addon pour les commentaires précédents de réponses.Une verbose la façon de transformer votre
selectall_arrayref
appel dans le même hachage oùID
est votre clé primaire, vous pourriez faire quelque chose comme cela.Et maintenant pour y accéder:
Maintenant à l'aide de
selectall_hashref
, votre appel serait quelque chose comme ceci. L'ID est leprimary
clé ici.Pour accéder à vos clés, vous pouvez utiliser de nombreuses façons, en voici un exemple:
Votre clé primaire est placé comme
$_
, vos clés, vous pouvez être l'accès de la table de hachage en disant.Encore, c'est comme dire:
Chaque élément est une boucle dans
$i
OriginalL'auteur hwnd
Lorsque vous utilisez
selectall_hashref
vous devez préciser la colonne à utiliser comme clé unique. Spécifiez une colonne vous savez qu'ils ont des valeurs uniques pour chaque ligne, puis il sera de remplir une table de hachage avec la "ligne" des objets à l'aide de la clé de valeurs de colonne comme clé. Chaque "ligne" est lui-même un hashref avec les noms de colonnes comme les clés.De l'DBI page:
Dans les trois versions que vous fournissez
$key_field
pour identifier la colonne qui sera utilisée comme la clé de hachage.OriginalL'auteur Jim Garrison
Hachages de définir une association entre 2 choses, mais qu'est-ce que la clé ou la valeur dans ce cas? En supposant que vous souhaitez un 1 comme valeur:
ou,
OriginalL'auteur perreal