我试图从表的最后一行返回一个成员firstname
字段。users
users
my $dbh = DBI->connect($dsn, $db_user_name, $db_password) or die "$DBI::errstr";
my $LastID = $dbh->last_insert_id(`firstname`); ##but I want from table users
print qq~$LastID~;
从上面返回此错误:
DBI last_insert_id: invalid number of arguments: got handle + 0, expected handle + between 4 and 5
Usage: $h->last_insert_id($catalog, $schema, $table_name, $field_name [, \%attr ])
firstname
那么,从表的最后一行获取字段的“最佳”方式是什么(最适合服务器、最快、最少的内存、负载、最少的开销……无论如何)users
?
意识到我上面的例子不应该被认真对待,因为我不知道如何做到这一点,而不仅仅是做一些像我的粗略但功能性的事情:(ps UserID 不是通过自动增量分配的,而是按数字顺序排列的,新用户得到更高的用户 ID。就像我解决预先存在的问题时那样。)
my $dbh = DBI->connect($dsn, $db_user_name, $db_password) or die "$DBI::errstr";
my $dsn = $dbh->prepare(qq{SELECT `firstname` FROM `users` ORDER BY ABS(UserID) DESC LIMIT ?,?});
$dsn->execute('1','1') or die "$DBI::errstr";
while(@nrow = $dsn->fetchrow_array()) {
$firstname = $nrow[0];
}
我假设因为我使用的 DBI 可能会提供最佳解决方案,但是我显然缺乏经验,需要一些建议和指导来学习正确的方法来做到这一点。感谢您的任何帮助。