假设我有一个简单的数据库表,它没有ID_KEY但有一个name列。我想这样显示输出
+----+---------+
| | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
然后用<STDIN>
for(例如3)选择企鹅。3只是您执行选择呼叫时出现的行号。
有什么方法可以做到这一点,还是只有关联一个id密钥,然后再匹配该id密钥的随后的select语句才有可能?
起初我误会了你,但我已经流行了。但这没有多大意义,因为当您在Perl程序中输入数字时,您将无法使用MySQL命令行工具,也无法看到要输入的数字。
您需要做的是编写您的Perl程序,以便它打印name
表中的所有字段以及行号。然后,您的程序可以将输入的动物编号转换为其名称,因为它知道所打印的内容。
这样的事情会起作用。当然,您将必须正确设置名称,IP地址和凭据,以便DBI
可以连接到数据库。
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect(
'DBI:mysql:database=animal_test',
'username',
'password',
{ RaiseError => 1 },
);
my $names = map @$_, $dbh->selectall_arrayref('SELECT name FROM animals');
for my $i ( 0 .. $#$names ) {
printf "%3d: %s\n", $i+1, $names->[$i];
}
print "\n";
print "Enter animal number: ";
my $animal = <>;
chomp $animal;
my $name = $names->[$animal-1];
printf "Animal chosen is %s\n", $name;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句