转换 ->numrows 以便在 Perl 中与 DBD::mysql 一起使用

Convert ->numrows for use with DBD::mysql in Perl

我有一些旧代码使用了 Perl 中的旧 Mysql 库。

大部分时间更新代码以使用 DBD::mysql 而不是没有问题,但是我 运行 遇到 ->numrows 不起作用的问题。

我应该怎么做才能在使用 DBD::mysql

时获得相同的功能

使用Mysql

use Mysql;

$type = "yellow";

$statement = "select name from customer where type = '$type'";

$sth = $dbh->query($statement);

if ($sth->numrows) {
  print "Success!"; # This does work.
}

使用DBD::mysql

use DBI;
use DBD::mysql;

$type = "yellow";

$statement = "select name from customer where type = ?";

$sth = $dbh->prepare($statement);
$sth->execute($type);

if ($sth->numrows) {
  print "Success!"; # This doesn't work.
}

这是我返回的错误:

tail /var/log/apache2/error.log

 Can't locate object method "numrows" via package "DBI::st"

我认为你应该如下使用它

if ($sth->rows)